を作成しましたが、次のように指定されEvaluateAttribute
たさまざまな を受け入れるようにします。IEvaluator
[Evaluate(CatEvaluator, DogEvaluator)]
public void someMethod()
{
}
CatEvaluator
とは型であるためDogEvaluator
、属性クラスを次のように設定します。
public class EvaluateAttribute<T> : Attribute where T:IAccessEvaluator
そしてコンストラクタ:
public EvaluateAttribute(params T [] accessEvaluators)
{
_accessEvaluators = accessEvaluators;
}
ただし、C#はジェネリックと属性が好きではないようです。これに対する解決策はありますか?
属性を で各型をインスタンス化し、 にCreateInstance
固有の evaluate メソッドを実行する必要がありますIAccessEvaluator
。