从MethodInfo创建委托时出错

问题描述 投票:0回答:1

我对另一个问题有一个建议,以替换这段代码:

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();可以执行相同任务的委托...

c# delegates func
1个回答
0
投票

此行是问题:

© www.soinside.com 2019 - 2024. All rights reserved.