感谢您阅读。
我正在基于预定义的规范(HR-XML 3.0)实现WCF服务。因此,我从架构开始,然后回到代码中。本规范提供了许多与我的实现相关的大型Schema文档(导入更多Schema文档)。
我可以使用xsd.exe生成代码,方法是提供“main”和“支持”xsd文件作为参数。但是有几个问题,我想知道这是否是正确的方法。
据我所知,在定位DataContractSerializer甚至是XmlSerializer时,svcutil.exe / xsd.exe支持的架构类型存在限制。我的问题有两方面:
非常感谢!
-Sasha Borodin DFWHC.org
答案 0 :(得分:2)
Sasha,如果您要使用代码生成,您可能永远不应该从模块化模式开始。当您针对模块化模式放置代码生成器时,您将为HR-XML库中的所有常见组件生成一个类,并在OAGIS中生成一些常见组件。你不想要这个。 HR-XML与独立模式一起分发,这是一个更好的起点。一个更好的起点是创建一个扁平化的包xsd,它只包含WSDL带来的类型。如果您使用几个独立模式,那么您在生成的代码中至少会有一些重复。
答案 1 :(得分:1)
好吧,你可以尝试这样做:
xsd.exe
工具或类似Xsd2Code的内容作为Visual Studio插件。将所有内容打包到一个单独的类库程序集
现在,当从WSDL生成WCF服务时,使用Visual Studio中的Add Service Reference
或svcutil.exe
工具,引用具有所有数据类的程序集。这样做,WCF应该跳过再次重新创建整个类集,并使用该数据程序集中可用的任何内容
有了这个,你可能能够控制住这个烂摊子。