我有大约 5 个 XML 调用要在 C# 中实现。我使用 Xsd2Code 自动生成代码,我对结果非常满意。但是,我的问题是所有 XML 调用都具有相同的请求响应 TypeName,如下所示:
XML 调用 - 1:
<Request Method="AvailabilityRetrievalRQ">
....
</Request>
<Response Method="AvailabilityRetrievalRS">
....
</Response>
XML 调用 - 2:
<Request Method="RateRetrievalRQ">
.....
</Request>
<Response Method="RateRetrievalRS">
....
</Response>
因此,所有 5 个 XML 调用都生成了 10 个类 - 5 个名为“Request”,5 个名为“Response”。现在,我知道我总是可以将 XmlType 中的 TypeName 指定为 Request,并重命名类。我已经这样做了。我的问题是更改自动生成的代码是否好。它只是重命名类。我不需要更改任何其他内容。我想到的另一个解决方案是为每个请求-响应对提供不同的 C# 命名空间。但我对此有一种不好的感觉,似乎更像是一种解决方法。
在您看来,理想的解决方案是什么?
另一个疑问是我对内部 XML 节点有同样的问题。在每个 XML 调用中,它们具有相同的名称,但功能不同,因此结构也不同。例如,
XML 调用 - 1
<Request Method="AvailabilityRetrievalRQ">
<Room ID="XXX" />
.....
</Request>
XML 调用 - 2
<Request Method="RateRetrievalRQ">
<Room ID="XXX" ProductID="YYY" />
....
</Request>
现在,我决定不尝试去掉通用类来减少代码冗余。我更喜欢将 XSD 模式与自动生成的类进行映射,并且只是重命名了类以避免任何冲突。例如,上述示例的类似 Room 类将是:
XML 调用 - 1
public partial class AvailabilityRetrievalRQ_Room { }
XML 调用 - 2
public partial class RateRetrievalRQ_Room { }
我做错了吗?