您可以使用 Enterprise Library 附带的 Or Composite Validator。您可以使用 Not Null Validator 和 String Length Validator 来执行您的验证。
这是一个简单的示例:
[ConfigurationElementType(typeof(CustomValidatorData))]
公共密封类 CustomValidatorClass : 验证器
{
public CustomValidatorClass(string template, string tag)
: base(template, tag)
{
}
protected override string DefaultMessageTemplate
{
get { return "blah blah"; }
}
public override void DoValidate(object objectToValidate, object currentTarget, string key, ValidationResults validationResults)
{
//Do something here
}
}
在配置文件中:
<validation>
<type name="ConsoleApplication1.PropertyClass" assemblyName="ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<ruleset name="Validation Ruleset">
<properties>
<property name="MyProperty">
<validator type="ConsoleApplication1.MyClass, ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
messageTemplate="Blah blah" name="MyClass" />
</property>
</properties>
</ruleset>
</type>
</validation>
您可以将泛型类用于您想要验证的任何特定类型或任何已经扩展 Enterprise Library API 中的 Validator 类的类。