【发布时间】:2019-11-29 11:01:02
【问题描述】:
我有一个关于另一个问题的建议,替换这段代码:
string ent = c.GetType().GetProperty(prop).GetGetMethod().Invoke(c, null).ToString();
使用可以做同样事情的委托(但在性能方面应该更快)。
这是我目前想出的:
TestClass test = new TestClass (){DummyProp= "appo"};
string prop = "DummyProp";
MethodInfo method = typeof(TestClass ).GetProperty(prop).GetGetMethod();
Func<TestClass , string> getter= (Func<TestClass , string>)
Delegate.CreateDelegate(typeof(Func<TestClass , string>), test, method);
Console.WriteLine(getter(test));
我要做的是在运行时获取TestClass 实例中属性的值,该属性可以是其中的许多属性之一,需要哪个属性取决于一些条件
问题是我得到以下异常“目标方法无法绑定,因为它的签名或安全透明度与委托类型不兼容”。我错过了什么?
【问题讨论】: