WCF - 从其他服务引用中重用类型

时间:2015-02-05 10:04:03

标签: java wcf

我们有两个用java编写的webservice服务器:

  • CoreService
  • ExtensionService。

ExtensionService引用CoreService并重用类型。

同样,我们有两个客户端库:

  • CoreClient,其中包含对CoreService的服务引用
  • 具有对ExtensionService的服务引用的ExtensionClient

我希望ExtensionClient重用CoreClient生成的类型。如果ExtensionClient生成自己的“核心”类,我无法重用CoreClient中的业务逻辑,因为CoreClient使用不同的类作为ExtensionClient。

我可以手动编写CoreClient datacontract。 如何强制ExtensionClient重用CoreClient中的类

1 个答案:

答案 0 :(得分:0)

将svcutil.exe与描述为here的/ r标志一起使用,为ExtensionService生成客户端代理,并将CoreService dll作为参数传递。

但是,您需要知道svcutil.exe使用DataContractSerializer来帮助生成代码,不幸的是,在解析您的服务合同时,它有一个strict set of rules

因此,除非您服务XSD遵守这套规则,否则svcutil.exe将切换为使用XmlSerializer,它不支持/ r标志(或重用)。因此,您将无法重复使用类型。