私はEvaluateAttribute
を作成し、私はそれがこのように指定された様々なIEvaluator
の受け入れたい:CatEvaluator
とDogEvaluator
がタイプなのでC#で型を受け入れる[属性]を持つにはどうすればよいですか?
[Evaluate(CatEvaluator, DogEvaluator)]
public void someMethod()
{
}
を、私はこのように私の属性クラスを設定します。
public class EvaluateAttribute<T> : Attribute where T:IAccessEvaluator
コンストラクタ:
public EvaluateAttribute(params T [] accessEvaluators)
{
_accessEvaluators = accessEvaluators;
}
C#ではgenericsとattrが似ていませんしかし、ibutes、それは見えるだろう。これには解決策がありますか?
各タイプをCreateInstance
でインスタンス化し、IAccessEvaluator
に固有の評価メソッドを実行します。
はこれをチェックしてください: http://stackoverflow.com/questions/294216/why-does-c-sharp-forbid-generic-attribute-types グリーティング – MUG4N
投稿する前にそれは解決策を含んでいないことがわかりました。 – NibblyPig