WCF代理对象与普通类对象和服务对象(实际WCF服务对象)之间的区别是什么?
是否有任何可以在类对象上执行的功能以及无法在WCF代理上执行的功能。
答案 0 :(得分:0)
您的客户端代理是一个常见的.NET类,它来自ServiceModel.ClientBase类。创建代理时,.NET环境只是添加了使用服务方法的逻辑,就好像它们是本地的一样。代理包含服务方法和一些构造函数的共享,您可以在其中定义绑定,端点等。当您在代理中调用方法时 - 它会打开chanel,创建一条消息并将其发送到服务器。这就是代理的作用。它不包含你的方法的逻辑。
您的服务类 - 也是一个通常的.NET类,标有一些特殊的服务属性。当您启动服务时,.NET环境开始侦听客户端发送的消息。当它重新收到这些消息时 - 它会解压缩它们,创建服务类的实例(或者已经创建)并执行该方法。然后将结果发送回返回消息。
因此客户端代理不包含任何逻辑 - 它仅用于发送消息信息它调用的方法和使用的参数。服务类包含方法的所有逻辑。