2

Enterprise Library 5 は app.config から読み取り、完全に検証します。

以下を参考に:

Microsoft.Practices.EnterpriseLibrary.Common v 5.0.414.0 Microsoft.Practices.EnterpriseLibrary.Validation v 5.0.414.0

および次の構成 (app.config 内):

<configSections>
<section name="validation"
         type="Microsoft.Practices.EnterpriseLibrary.Validation.Configuration.ValidationSettings,
             Microsoft.Practices.EnterpriseLibrary.Validation" />
</configSections>

<validation>
<type name="WindowsFormsApplication1.AThing" assemblyName="WindowsFormsApplication1" defaultRuleset="default">
  <ruleset name="default">
    <properties>
      <property name="Name">            
        <validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.NotNullValidator, Microsoft.Practices.EnterpriseLibrary.Validation"
          negated="false" messageTemplate="Customer must have valid no"
          tag="CustomerNo" name="Not Null Validator" />
      </property>
    </properties>
  </ruleset>
</type>
</validation>

および次のコード:

public class AThing
{
    public string Name { get; set; }
}

...
AThing bob = new AThing();
bob.Name = null;
ValidationResults vr = Validation.Validate(bob, "default");
Debug.Assert(!vr.IsValid); 
...

vr.IsValid は正しくfalseです ("Name" が null であり、NotNull Validator があるため)。

ただし、参照を次のように置き換えると:

Microsoft.Practices.EnterpriseLibrary.Common v 6.0.0.0 Microsoft.Practices.EnterpriseLibrary.Validation v 6.0.0.0

vs.IsValidtrue ... _

多くのグーグルとスタックオーバーフローの後、このEnterprise Library 6検証構成ファイルのみが見つかりました(同様の問題を抱えている別のユーザー...)(*これはCodePlexにあります)

4

1 に答える 1