我知道这种情况多次出现,例如在this或this问题中,它显然写在MSDN上,但如果我无法将函数作为参数传递给属性,System.ComponentModel.DataAnnotations.ValidationAttribute怎么做呢?
我在这里缺少什么?这个内置属性是否只能有一个Func< TResult>作为参数?如果它毕竟是可能的,它也可以是带有输入参数的Func吗?
我的最终目标是能够定义用于序列化属性的函数。整个过程就是运行时代码生成的魔力,所以我真的不需要做一些简单的替代方法。我确实有一个解决方法,但使用Func会更容易。
答案 0 :(得分:1)
您可以使用委托作为属性构造函数的参数 - 您不能这样做声明性地。
现在在这种情况下,它只是一个受保护的构造函数 - 所以它的目的是从派生类中调用,例如RangeAttribute
,这可能会为基础构造函数提供一个合适的委托。