我对另一个问题有一个建议,以替换这段代码:
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
实例中的属性的值,该属性可以是其中的许多属性之一,而所需的属性由某些人决定。条件
问题是我得到以下异常“目标方法无法绑定,因为它的签名或安全透明性与委托类型不兼容”。我想念什么?
我对另一个问题提出了建议,以替换这段代码:string ent = c.GetType()。GetProperty(prop).GetGetMethod()。Invoke(c,null).ToString();可以执行相同任务的委托...
此行是问题: