使用配置文件验证企业库4

时间:2015-01-22 11:56:17

标签: xml visual-studio validation enterprise-library

我想知道,如果不是必需的话,如何验证字符串字段(长度)并且可以为空?如果我的字符串为空,我如何跳过验证?我当前的验证是这样的,但它不是'空友好':

            <validator lowerBound="0" lowerBoundType="Ignore" upperBound="150"
          upperBoundType="Inclusive" negated="false" messageTemplate=""
          messageTemplateResourceName="my_message"
          messageTemplateResourceType="Project.Messages, Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
          tag="" type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.StringLengthValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=4.1.0.0, Culture=neutral, PublicKeyToken=11222ff322r645e"
          name="String Length Validator" />

1 个答案:

答案 0 :(得分:0)

你将不得不使用OrCompositeValidator。

这是一个允许null或介于1和100之间的值。 但是应该给你一个想法。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="validation" type="Microsoft.Practices.EnterpriseLibrary.Validation.Configuration.ValidationSettings, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
    </configSections>
    <validation>
        <type name="ValidationTest.Data" defaultRuleset="" assemblyName="ConsoleApplication4, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
            <ruleset name="RuleSet1">
                <properties>
                    <property name="MyProperty">
                        <validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.OrCompositeValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                            name="Or Composite Validator" />
                        <validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.NotNullValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                            negated="true" name="Not Null Validator" />
                        <validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.RangeValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                            culture="en-US" lowerBound="1" lowerBoundType="Inclusive"
                            upperBound="100" name="Range Validator" />
                    </property>
                </properties>
            </ruleset>
        </type>
    </validation>
</configuration>