【发布时间】:2010-12-10 16:39:58
【问题描述】:
IntelliSense 告诉我“表达式不能包含匿名方法或 lambda 表达式。”真的吗?我不知道这种强加的限制。它是否正确?我想我在这里寻找健全性检查......
public delegate bool Bar(string s);
[AttributeUsage(AttributeTargets.All)]
public class Foo : Attribute
{
public readonly Bar bar;
public Foo(Bar bar)
{
this.bar = bar;
}
}
public class Usage
{
[Foo(b => b == "Hello World!")] // IntelliSense Complains here
public Usage()
{
}
}
【问题讨论】:
-
我很好奇你会期望这样做。
-
我的意图只是为了一些配置目的允许一个简单的映射。
-
在这个例子中,什么会映射到什么?
Usage方法是否会映射到Foo属性中的 lambda? lambda 什么时候执行?我不清楚,但这可能是一个有趣的想法...... -
嗯,我真的只是在为 DI 方案设计一些想法的原型(不,不幸的是我不能使用 Ninject),所以这只是我正在探索的一个想法。我遇到了 IntelliSense 问题,我完全没有意识到这个限制。不过没什么大不了的,配置只需要驻留在其他地方
标签: c# lambda attributes