Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 限制仅对一种属性类型使用属性验证(ValidationAttribute)_C#_Validationattribute - Fatal编程技术网

C# 限制仅对一种属性类型使用属性验证(ValidationAttribute)

C# 限制仅对一种属性类型使用属性验证(ValidationAttribute),c#,validationattribute,C#,Validationattribute,问题是:如何将验证属性限制为仅用于一种类型?例如仅用于DateTime 目前我使用“IsValid”控制方法: 我希望在构造函数中使用此选项,但我不知道如何检测它所应用的属性的类型,或诸如: [AttributeUsage(AttributeTargets.Property, ...)] public class MyValidateDatesAttibute : ValidationAttribute, IClientValidatable { ... } 它限制了我的唯一属性属性的使

问题是:如何将验证属性限制为仅用于一种类型?例如仅用于DateTime

目前我使用“IsValid”控制方法:

我希望在构造函数中使用此选项,但我不知道如何检测它所应用的属性的类型,或诸如:

[AttributeUsage(AttributeTargets.Property, ...)]
public class MyValidateDatesAttibute : ValidationAttribute, IClientValidatable
{
   ...
}
它限制了我的唯一属性属性的使用


谢谢。

恐怕您不能将使用限制在这种粒度级别。您仍然可以选择应用于运行时的内容。并抛出一个异常或将其吞并。您可以在T:DateTime中使用泛型,但这将是不合理的,因为它只适用于一种类型。另一个选项是在方法不支持该类型时抛出NotSupportedException。
[AttributeUsage(AttributeTargets.Property, ...)]
public class MyValidateDatesAttibute : ValidationAttribute, IClientValidatable
{
   ...
}