【发布时间】:2015-09-30 02:52:08
【问题描述】:
如何从 Function 对象中获取自定义属性?
public static void Main(string[] args) {
Func<object> fun = () => Foo();
//fun. Get Foo Custom Attribute
}
[CustomAttrib]
public static object Foo() {
return new object();
}
【问题讨论】:
-
或this
-
副本不正确 - 这要困难得多,因为该方法位于
Function内。 -
您是否需要在不实际调用委托并检查检索到的对象的情况下执行此操作?
-
我将更改代码以通过接口而不是
Func<T>获取工厂对象。工厂接口应该有一个返回对象新实例的方法,以及一个返回有关它可以生成的对象类型的元数据/信息的方法,使其成为您拥有所有部分的编译器检查合同的一部分。一个函数或表达式会变得脆弱,仅仅一个 if 语句就会让你编写的任何代码无法工作。
标签: c# lambda custom-attributes