1

これは、この質問やこの質問のように何度も表面化したことを知っており、 MSDNに明確に記述されていますが、属性へのパラメーターとして関数を渡すことができない場合、System.ComponentModel.DataAnnotations.ValidationAttributeはどのようにそれを行うことができますか?

ここで何が欠けていますか?この組み込み属性がパラメーターとしてFunc<TResult>を持つことのみが可能ですか?結局のところ、それが可能であれば、それは入力パラメーターを持つFuncでもあり得ますか?

私の最終的な目標は、プロパティのシリアル化に使用する関数を定義できるようにすることです。すべては実行時のコード生成の魔法なので、これを行うための簡単な代替手段は本当に必要ありません。回避策はありますが、Funcを使用する方がはるかに簡単です。

4

1 に答える 1

1

属性コンストラクターへの引数としてデリゲートを使用できます-宣言的に使用することはできません。

この場合、とにかく保護されたコンストラクターにすぎません。したがって、などの派生クラスから呼び出されることを目的としていますRangeAttribute。これは、おそらくベースコンストラクターに適切なデリゲートを提供します。

于 2013-01-19T18:50:53.150 に答える