質問

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

[CardValidationBinCheck(this.CardType, 
                        ErrorMessage = "CreditCardNumberDoesNotMatchCardType")]
public string CardNumber
{
 ...
}

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

とにかくcirvumvent thisを渡し、 this.CardType を属性に渡すことができますか?

親切、

ダン

役に立ちましたか?

解決

残念ながらありません。 ILが属性値をメンバー参照トークン(たとえば、 PropertyInfo に効果的に)にすることを許可している場合でも、1つを取得するC#演算子はありません 1 。それを文字列リテラルとして渡し、リフレクションを使用して PropertyInfo を取得できます。 glyくて壊れやすいですが、おそらく最も近いでしょう。


1 これはよく知られている機能リクエストであり、「infoof」と呼ばれることもあります。オペレーター。ただし、実装されている兆候はありません。

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