将属性的类型()参数限制为仅特定类型...这可能吗?

时间:2010-03-04 16:15:43

标签: c# attributes types

我正在使用基于属性的验证,我想限制可以在这些属性中输入的内容。

例如:

ThisValidatesSomethingAttribute(Type typeOfExceptionToThrowOnFailure)

所以使用它是

[ThisValidatesSomething(typeof(MassiveFailureException))]
public int SomeIntParameter()

有没有办法限制可以在此属性中输入的类型?

我想将Type参数限制为只能从名为“SuperSpecialBaseException”的基类派生的类型

在泛型中我只使用类型约束“where T:SuperSpecialBaseException”但当然,这不是泛型(快乐属性限制)

2 个答案:

答案 0 :(得分:2)

不是编译时功能。这相当于只能接受10到20之间的int个参数;这种检查必须在你的代码中执行,不能声明。

答案 1 :(得分:0)

在编译时没有办法做到这一点。您需要对参数进行运行时验证。