質問

オブジェクトモデルを含むクラスライブラリがあります。 2つのアプリで検証を共有できるように、検証ルールを自分のモデルに配置するデータアノテーションを各オブジェクトにしたいと思います。 1つはMVC 2アプリで、もう1つはWindowsフォームアプリです。

データアノテーションを使用してコードから手動でオブジェクトモデルを検証できる必要がありますが、xvalを使用しません。オブジェクトモデルライブラリを4.0クライアントプロファイルに切り替えると、XValコンポーネントで構築できなくなります。 Domain ObjectクラスライブラリはWindowsアプリで配布されるため、4.0クライアントプロファイルを利用したいと思いました。

何か案は?

役に立ちましたか?

解決

まあ、私はそれが他の誰かに役立つかもしれない場合に備えて、もう少し物質で答えを提供します。

検証には、次のような単純な検証方法を使用します。

public void Validate(T entity)
{
    var context = new ValidationContext(entity, null, null);
    var results = new List<ValidationResult>();

    bool valid = Validator.TryValidateObject(entity, context, results, true);

    if (!valid)
        ; // do something fancy with the results here, perhaps
}

スキップすることもできます TryValidateObject そして、すぐに行きます ValidateObject 結果に派手なことをしたくない場合。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top