属性値に基づいて、アダプターを介してクラスの関数にアクセスしたい。すべての関数は、
私が考えた方法と同じプロトタイプを持っています。それは、次のような辞書を宣言することです。
Dictionary<key_values, Delegate_of_Functions>
ここでkey_values
、関数を識別する値を含み、Delegate_of_Functions
関数タイプのデリゲートであるクラス。
今、私は次のことをしようとしました:
Functions = new Dictionary<string, function>();
var a = from Fun in typeof(TheFunctionsContainer).GetMethods()
where Fun.GetCustomAttributes(typeof(The_Attribute), true).Length != 0
select Fun;
foreach (var c in a)
{
Functions.Add(
c.GetCustomAttributes(true).OfType<The_Attribute>().First().key,
new function(c)); // this line dose not compile
}
私の質問は次のとおりです。
- コンパイルされない行をコンパイルする方法は?
- これを行うためのより良い方法はありますか?