我正在使用企业库验证应用程序块。
抽象A类 { public int fieldA; }
B级:A { }
我在类型B中添加验证器。我无法找到字段fieldA,即使我在配置中输入它,验证也不会成功。 VAB是否不考虑抽象类和继承的属性或字段?
答案 0 :(得分:2)
我做了一个测试,这对基类和抽象基类工作正常。你可以发布你的配置吗?
在处理字段时,请注意不要使用属性验证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>
答案 1 :(得分:2)