我正在使用基于属性的验证,我想限制可以在这些属性中输入的内容。
例如:
ThisValidatesSomethingAttribute(Type typeOfExceptionToThrowOnFailure)
所以使用它是
[ThisValidatesSomething(typeof(MassiveFailureException))]
public int SomeIntParameter()
有没有办法限制可以在此属性中输入的类型?
我想将Type参数限制为只能从名为“SuperSpecialBaseException”的基类派生的类型
在泛型中我只使用类型约束“where T:SuperSpecialBaseException”但当然,这不是泛型(快乐属性限制)
答案 0 :(得分:2)
不是编译时功能。这相当于只能接受10到20之间的int
个参数;这种检查必须在你的代码中执行,不能声明。
答案 1 :(得分:0)
在编译时没有办法做到这一点。您需要对参数进行运行时验证。