gpt4 book ai didi

大型/复杂模式的 WCF 代码生成 (HR-XML/OAGIS) - 是否有替代方案?

转载 作者:行者123 更新时间:2023-12-02 00:41:20 26 4
gpt4 key购买 nike

感谢您的阅读。

我正在根据预定义规范 (HR-XML 3.0) 实现 WCF 服务。因此,我从模式开始,然后回到代码。本规范提供了很多与我的实现相关的大型 Schema 文档(它们导入了更多 Schema 文档)。

通过提供“主要”和“支持”xsd 文件作为参数,我能够使用 xsd.exe 生成代码。但是有几个问题,我想知道这是否是正确的方法。

  • 有数百个类 - 代码文件大小为半兆
  • 重复的类(例如 Type、Type1 - 两者代表相同的类型)
  • 有些类声明为从基类继承,但未生成/定义该基类

我了解,在针对 DataContractSerializer 甚至 XmlSerializer 时,svcutil.exe/xsd.exe 支持的架构类型存在限制。我的问题有两个:

  1. 在处理较大的模块化 xsd 文件时,代码生成“问题”是否相当普遍?有没有人成功地从 OAGIS 或 HR-XML 模式生成数据契约(Contract)?
  2. 鉴于上述问题,是否有更好的方法来完成这项任务,避免生成代码并使用具体对象?直接读取和编写 SOAP 消息是否更有意义,同时仍然利用 WCF 框架的其余部分?我知道我正在失去使用 .NET 对象和框架提供的(反)序列化的便利;考虑到这些损失,将我的服务基于 WCF 是否仍然有利?在使用 .NET 类型和纯 XML 之间是否存在某种“中间地带”?

非常感谢!

-萨沙鲍罗丁DFWHC.org

最佳答案

Sasha,如果您打算使用代码生成,您可能永远不应该从模块化架构开始。当您针对模块化模式放置代码生成器时,您将为 HR-XML 库中的所有公共(public)组件和 OAGIS 中的大量公共(public)组件生成一个类。你不想要这个。 HR-XML 与独立模式一起分发,这是一个更好的起点。一个更好的起点是创建一个扁平化的包 xsd,它只包含 WSDL 引入的类型。如果您使用几个独立的模式,您至少会在生成的代码中有一些重复。

关于大型/复杂模式的 WCF 代码生成 (HR-XML/OAGIS) - 是否有替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2457749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com