带有Func <tresult>参数的.NET属性</tresult>

时间:2013-01-19 18:40:29

标签: .net methods delegates attributes func

我知道这种情况多次出现,例如在thisthis问题中,它显然写在MSDN上,但如果我无法将函数作为参数传递给属性,System.ComponentModel.DataAnnotations.ValidationAttribute怎么做呢?

我在这里缺少什么?这个内置属性是否只能有一个Func&lt; TResult&gt;作为参数?如果它毕竟是可能的,它也可以是带有输入参数的Func吗?

我的最终目标是能够定义用于序列化属性的函数。整个过程就是运行时代码生成的魔力,所以我真的不需要做一些简单的替代方法。我确实有一个解决方法,但使用Func会更容易。

1 个答案:

答案 0 :(得分:1)

您可以使用委托作为属性构造函数的参数 - 您不能这样做声明性地

现在在这种情况下,它只是一个受保护的构造函数 - 所以它的目的是从派生类中调用,例如RangeAttribute,这可能会为基础构造函数提供一个合适的委托。