2010-06-04 77 views
1

大家好我是WCF的新手我想知道我是否使用频道工厂,如果我对服务合同进行任何更改,是否更改将在客户端系统中自动更新?如果更改自动更新如何?WCF中的频道工厂

回答

2

不,渠道工厂不会自动更新 - 您必须更新服务参考(如果您使用Visual Studio的添加服务参考添加它),或者需要从WSDL/XSD重新创建客户端代理或服务网址。

更新:当然,如果您在服务和客户端之间的程序集中共享服务和数据合同,那么当您拥有新服务时,客户当然是最新的在地方合同DLL ...

如果要启用这种共享服务和数据合同,请使用以下设置:

  • 合同总成,拥有所有的服务合同(接口)和数据合同(数据类型S)

  • 在你的服务实现

    ,参考该Contracts组装和实施服务合同(S)

  • 在您的客户端代理

    ,也参照该共享Contracts组装,并使用ChannelFactory<T>创建服务合同界面T的渠道工厂。

采用这种设置,每当你做出改变,以共享来件装配,服务实现和客户端代理将“搞定”这些变化,例如他们总是最新的,并使用相同的服务和数据合同

+0

Thnaks ..如果我在客户端添加服务DLL然后如果我在服务中做任何更改然后应该做什么以更新客户端???? – 2010-06-04 11:29:35

+1

如果您与服务和数据合同共享DLL,那么您不必做任何事情 - 毕竟,您共享相同的代码库,因此服务合同中的任何更改都会自动在客户端代理中进行(你没有在你的问题中提到这个非常重要的事实....) – 2010-06-04 11:32:27

+0

对不起marc它是我的错误...你能给我一个例子如何使用渠道工厂,并在服务中做出改变,而不需要改变客户端中的任何东西侧???? – 2010-06-04 11:44:09