我正在使用企业库验证应用程序块。
抽象类 A { public int fieldA; }
B类:A { }
我将验证器添加到类型 B。我无法找到字段 fieldA,而且即使我在配置中输入它,验证也不会成功。VAB 是否不考虑抽象类和继承的属性或字段?
我正在使用企业库验证应用程序块。
抽象类 A { public int fieldA; }
B类:A { }
我将验证器添加到类型 B。我无法找到字段 fieldA,而且即使我在配置中输入它,验证也不会成功。VAB 是否不考虑抽象类和继承的属性或字段?
我做了一个测试,这对于基类和抽象基类都很好。你能发布你的配置吗?
请注意,在处理字段时不要使用属性验证 XML(反之亦然)。
根据上面的示例,您的配置应如下所示:
<validation>
<type assemblyName="MyProject.Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
name="MyProject.Test.B">
<ruleset name="RuleSetB">
<fields>
<field name="fieldA">
<validator lowerBound="1" lowerBoundType="Inclusive" upperBound="100"
upperBoundType="Inclusive" negated="false" messageTemplate="fieldA must be between 1 and 100"
messageTemplateResourceName="" messageTemplateResourceType=""
tag="" type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.RangeValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
name="Range Validator" />
</field>
</fields>
</ruleset>
</type>
</validation>