【问题标题】:C# call external function (class other machine)C#调用外部函数(类其他机器)
【发布时间】:2011-02-01 13:11:48
【问题描述】:

可以调用外部类的函数吗? 外部类在另一台机器上运行(比如它的位置是 mymachine.com)。 前段时间使用过CreateInstance,但认为不会这样做(如果我错了,请纠正我)。 我一直在寻找很长时间,但还没有找到解决方案,所以我希望你们能提供帮助。

我搜索过的来源之一是但没有信息:( http://www.dreamincode.net/forums/topic/102523-call-an-external-function-on-button-click/

希望你能帮忙。

【问题讨论】:

  • 当您说:“外部类在另一台机器上运行”时,您可能是指包含此类实例的进程正在另一台机器上运行。

标签: c# external createinstance


【解决方案1】:

使用自托管的 WCF 服务、远程处理或任何网络技术。

不幸的是,没有魔法属性可以实现这一点。

[编辑]我还想补充一点,你我小心点。当您使用一些远程处理机制(远程处理、WCF、rpc 等)时,您使用“代理”。代理是模拟实际对象但封装通信的对象。它允许开发人员通过拥有对象、属性、方法等来隐藏复杂性,但是开发人员必须了解其背后的技术(例如 WCF 服务的 xml 消息传递)。它会对网络、响应能力以及编程模型产生影响。

【讨论】:

    【解决方案2】:

    这种操作就是为 Web 服务/WCF 服务/远程处理而构建的。 WCF 是处理跨界通信的一个非常好的解决方案。看看 WCF,google 是你的朋友。

    【讨论】:

      【解决方案3】:

      查看这些: http://www.aspfree.com/c/a/.NET/Introduction-to-RPC-on-Windows-Part-I/ http://www.csharphelp.com/2007/01/interprocess-communication/

      【讨论】:

        【解决方案4】:

        如果外部程序集位于远程计算机上的共享文件夹中,则可以执行以下操作之一:

        1) 实现AppDomain.CurrentDomain.AssemblyResolve 事件处理程序以加载外部程序集,并进行您需要的调用。顺便在你的项目中添加一个对程序集的引用(copylocal=false)。对程序集中的类或静态方法的第一次调用将调用事件处理程序并加载远程外部程序集。

        2) 使用System.Reflection.Assembly.LoadFrom() 通过反射加载程序集并提供远程路径。使用反射来调用所需的方法等。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-20
          • 1970-01-01
          • 2012-08-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多