我想通过一些适配器,基于属性值访问一个类的功能。所有函数都具有相同的原型
,我想这样做的方式是声明这样的字典:
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
}
我的问题是:
- 如何让未编译的行编译?
- 有一个更好的方法吗?