有关WCF在客户端的两种实现方式

孙大诚_SunRobin 2012-09-25 09:42:27
WCF在客户端有两种实现方式,即Add Service Reference方式和Chanel Factory方式。其实,每种方式,都会在客户端生成一个代理类,这个代理类包含了服务端的所有服务方法

public class Proxy
{
ClientProxy proxy = new ClientProxy();

public int Add(int x, int y)
{
return proxy.Add(x,y);
}
}


我是这样理解的,每当客户端在调用proxy.Add(x,y)这个方法的时候,其实这个方法在客户端只是一个空壳子,没有实现,每当客户端调用的时候,代码执行到这里,就会向服务器端进行通信,把参数传过去,然后接收返回来的结果。

Add Service Reference方式和Chanel Factory方式到底有什么不同?如果服务器端代码,其架构没变,只是方法中的代码变化了,如Add方法中的代码有了小变动。那么,在客户端需要重新获取一下代理类吗?
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2012-09-25
  • 打赏
  • 举报
回复
你使用 ChannelFactory 的时候,需要在客户端引用 Contract 定义。
ChannelFactory<T> 是一个泛型类,T是Contract。

ServiceReference 是通过wsdl生成 contract。

ViewStates 2012-09-25
  • 打赏
  • 举报
回复
你前面那个说的是对的,PROXY只是一个透明代理,其内部实现还是使用的CHANNELFACTORY,具体的你可以去博客园查下ARTECH的WCF的文章。
后面一个问题,在不改变契约的前提下或契约可以兼容是不需要更新的。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧