【问题标题】:Enterprise Library 6 validation config fileEnterprise Library 6 验证配置文件
【发布时间】:2013-09-27 08:41:55
【问题描述】:

我正在尝试学习 EnterpriseLibraryValidatoin。 当我将 TypeValidation 配置为通过配置文件验证一个类时,它不会启动。 但是当我添加数据注释时,它会正确验证 我不知道我是否遗漏了什么

请帮忙

验证配置文件

<validation>
<type name="ValidationBlockExample.Person" defaultRuleset="ValidimiFushave"
    assemblyName="ValidationBlockExample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
    <ruleset name="ValidimiFushave">
        <fields>
            <field name="LastName">
                <validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.NotNullValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                    messageTemplate="Last Name Required!" name="Not Null Validator" />
            </field>
        </fields>
    </ruleset>
</type>

验证代码

        ValidationFactory.SetDefaultConfigurationValidatorFactory(new SystemConfigurationSource(false));

        Validator<Person> pValidator = ValidationFactory.CreateValidator<Person>();

        Person prsn = new Person();
        prsn.FirstName = "Name";
        ////prsn.LastName = "Haz";
        prsn.Age = 31;

        ValidationResults valResults = pValidator.Validate(prsn);


        if (!valResults.IsValid)
        {
            foreach (var valResult in valResults)
            {
                Console.WriteLine(valResult.Message);

            }

        }
        else
            Console.WriteLine("Preson Validated !!!");

        Console.ReadLine();

要验证的类

public class Person
{
    public string FirstName { get; set; }
    //[Required]
    public string LastName { get; set; }
    public int Age { get; set; }

}

【问题讨论】:

    标签: validation enterprise-library-6


    【解决方案1】:

    Microsoft Enterprise Library 6 – Final Release, Release Notes

    验证应用程序块

    ValidationFactory 类不再自动从配置文件构建其配置。您现在必须调用 SetDefaultConfigurationValidatorFactory 方法以从配置文件加载配置。这是一个突破性的变化。

    所以,按照我的建议,这样做:

    ValidationFactory.SetDefaultConfigurationValidatorFactory(
    new SystemConfigurationSource());
    

    在您验证之前。

    【讨论】:

      猜你喜欢
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多