据我所知,没有什么神奇的方法可以完全透明地调用一个方法,而不管它在哪台机器上运行,包括.NET Remoting。然而,WCF 广泛使用代理,或者从 WSDL 文档自动生成,或者通过直接引用共享 dll 中的类型/接口。
因此,您可以创建一个包含一些方法的共享 dll,添加一些 WCF 管道(即从您想要公开的方法/类型中创建一个服务接口),然后决定是否在项目中直接/本地使用它们,或者访问它们通过代理。这使得远程调用方法变得相当容易。但请注意,您无法创建远程公开状态和功能的成熟类,保存实际对象的内存不会远程共享,毕竟,这只是一个“技巧”。
根据您的设置,您可以:
尽管调用远程方法(包括发送/返回复杂的数据结构)很容易,但 WCF 在内部创建了一个完整的通信堆栈,可能包含大量逻辑,包括安全性、事务和可靠性等。这意味着远程通信是有代价的,会给 CPU 和网络带来压力。
可以在此处找到 WCF 入门知识。
如果您想要比内置通信选项更高的性能,您可能需要考虑使用Google Protocol Buffers之类的东西来减少传输的数据量并降低 CPU 负载。
对于 C#,据我所知,Protobuf CSharp 有两种实现,Jon Skeet 的Protobuf CSharp和 Marc Gravell 的Protobuf-net。
最后一点是为了明确起见;不,WCF没有为您提供一种完全抽象类型/方法位置的方法。
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |