0


0

CardNumberプロパティが特定のカードタイプ(同じクラスの別のプロパティ)に対して有効であることを確認するカスタムクレジットカード検証属性を作成しました

[CardValidationBinCheck(this.CardType、ErrorMessage = "CreditCardNumberDoesNotMatchCardType")]パブリック文字列CardNumber {... }

属性引数は定数、typeof式、または属性パラメータ型(?)の配列作成式でなければならないとスタジオが訴えているので、これはコンパイルされません。

これを回避してthis.CardTypeを属性に渡すことができる方法はありますか。

親切、

ダン

1 Answer


5


残念ながら違います。 たとえILが属性値がメンバ参照トークンであることを許可していても 実質的には PropertyInfo)あなたに代わってそれを取得するC#演算子はありません^ 1 ^。 あなたはそれを文字列リテラルとして渡し、それからリフレクションを使って `PropertyInfo`を取得することができます。 醜くて壊れやすいですが、おそらく最も近いでしょう。

'' '' '

^ 1 ^これはよく知られた機能要求で、おそらく "infoof"演算子と呼ばれます。 それが実装されているという兆候はありません。