使用动态而不是反射来按名称调用方法

发布于 2024-10-24 04:41:23 字数 315 浏览 3 评论 0原文

使用.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);
    }

Using .NET-4.0, how would I use Dynamic to accomplish the following without using reflection?

     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);
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吃→可爱长大的 2024-10-31 04:41:23

C# 中的动态类型并没有提供这一点 - 您想要访问的成员的名称仍然必须在编译时已知。 (当然,您可以自己创建调用站点并使用 DLR 的其余机制来解决问题,但这不会比使用反射更简单,而且它不会真正使用语言< /em> 功能。)

Dynamic typing in C# doesn't provide for that - the names of the members you want to access still has to be known at compile-time. (You could create the call site yourself of course and use the rest of the machinery of the DLR to resolve things, but it wouldn't be any simpler than using reflection, and it wouldn't really be using the language features.)

独闯女儿国 2024-10-31 04:41:23

开源框架Impromptu-Interface 具有自动执行所有管道以使用 DLR 的方法像这样解决真的晚了。它的运行速度比使用 void 返回方法的反射快 70%。

  public void InvokeMethod(string methodName)
    {
        var reflectOb = new GCS_WebService();
        Impromptu.InvokeMemberAction(reflectOb, methodName)
    }

The open source framework Impromptu-Interface has methods the automate all the plumbing to use the DLR to resolve really late like this. It runs 70% faster than reflection with void returning methods.

  public void InvokeMethod(string methodName)
    {
        var reflectOb = new GCS_WebService();
        Impromptu.InvokeMemberAction(reflectOb, methodName)
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文