在Java中,使用RMI API,您可以通过将任意代码发送到远程计算机来执行它来执行。我知道在使用远程处理或WCF的.NET中可以实现类似但不完全相同的东西。
但根据我的经验,既不允许任意代码执行,远程机器仍需要对对象的引用,而不仅仅是接口。这是对的吗?
我通过在共享位置访问DLL来解决这个问题,该位置已更新,远程计算机可以使用它来执行代码。还有更好的方法吗?
编辑: http://www.cs.ucsb.edu/~cappello/lectures/rmi/helloworld.shtml 在链接中,方法调用只返回一个字符串。然而,这可能是任何事情,并且客户没有事先了解该方法的实施。
答案 0 :(得分:2)
既不允许任意代码执行
这是正确的,您必须公开要远程执行的代码。
...远程机器仍然需要对对象的引用,而不仅仅是一个接口。这是对的吗?
否则在WCF客户端中,您可以add a reference to the service创建服务使用的类的本地副本。
请注意Remoting is:
不建议用于新开发。
但是,您可以通过添加来自客户端和服务器项目的共享dll的引用来避免共享位置dll,然后将相同的dll部署到这两个位置。
或add class source file as link来自另一个项目。
您可以在运行时编译和运行任意代码,并将其与一个简单的WFC方法相结合,该方法接受一个字符串,编译并运行它,这将实现您想要的: