1

NHibernatesValidatorライブラリのDecimalMinバリデーターを使用しようとしています。残念ながら、コンパイラの制限により、使用しようとするとエラーが発生します。簡単なことだと思いますが、別のタスクに移る必要があり、もう時間をかけないようにする必要があるので、助けていただければ幸いです。

    [DecimalMin(10.01)]
    public decimal Amount { get; set; }

上記のコードは、コンストラクター値が10.01のDecimalMin属性を使用しています。属性のコンストラクターは10進値を受け入れます。ただし、コンパイラは10.01または10.01mを許可しません。

私が受け取る値として10.01を使用すると、「ソースタイプ「double」をターゲットタイプ「decimal」に変換できません」

私が受け取る値として10.01mの場合、「属性の引数は、定数式、式のタイプ、または属性パラメータータイプの配列作成式である必要があります。」

私は答えを見つけるためにグーグルで回りました、そして私のグーグルフーは今日私に失敗しています。

このバリデーターの使い方の例はありますか?

4

1 に答える 1

2

これは NHibernate.Validator のバグです。10 進数は、属性パラメーターでは表現できません。

c#で属性パラメータとして10進数値を使用しますか?

解決策は、NHibernate.Validator にパッチを適用して、コンストラクターが float または double を受け取り、ctor で 10 進数への変換を実行することです。あなたにとってより良い答えがあればいいのにと思います。

于 2010-11-17T21:20:41.577 に答える