我们有两个用java编写的webservice服务器:
ExtensionService引用CoreService并重用类型。
同样,我们有两个客户端库:
我希望ExtensionClient重用CoreClient生成的类型。如果ExtensionClient生成自己的“核心”类,我无法重用CoreClient中的业务逻辑,因为CoreClient使用不同的类作为ExtensionClient。
我可以手动编写CoreClient datacontract。 如何强制ExtensionClient重用CoreClient中的类?
答案 0 :(得分:0)
将svcutil.exe与描述为here的/ r标志一起使用,为ExtensionService生成客户端代理,并将CoreService dll作为参数传递。
但是,您需要知道svcutil.exe使用DataContractSerializer
来帮助生成代码,不幸的是,在解析您的服务合同时,它有一个strict set of rules。
因此,除非您服务XSD遵守这套规则,否则svcutil.exe将切换为使用XmlSerializer
,它不支持/ r标志(或重用)。因此,您将无法重复使用类型。