使用.NET-4.0,我如何在不使用反射的情况下使用Dynamic来完成以下操作?
public void InvokeMethod(string methodName)
{
Type t = typeof(GCS_WebService);
GCS_WebService reflectOb = new GCS_WebService();
MethodInfo m = t.GetMethod(methodName);
m.Invoke(reflectOb, null);
}发布于 2011-03-19 05:57:35
C#中的动态类型不支持这一点--您想要访问的成员的名称在编译时仍然必须是已知的。(当然,您可以自己创建调用站点,并使用DLR的其余机器来解决问题,但这不会比使用反射更简单,而且它也不会真正使用语言特性。)
发布于 2011-04-21 10:26:47
开源框架Impromptu-Interface具有自动化所有管道的方法,以使用DLR来解决如下所示的really late。它的运行速度比使用void返回方法的反射快70%。
public void InvokeMethod(string methodName)
{
var reflectOb = new GCS_WebService();
Impromptu.InvokeMemberAction(reflectOb, methodName)
}https://stackoverflow.com/questions/5358224
复制相似问题