c# - 将 XML 消息反序列化为对象

标签 c# .net xml-serialization

我正在为使用 HTTP 传输 XML 消息的协议(protocol)编写客户端。它是同步的,因为我形成了一个遵循 DTD 的 XML 文档,并通过带有 WebClient 类的 POST 将其发送到协议(protocol)的网关,并且我从远程服务器获取 XML 响应消息以指示事务状态/消息 ID/等。

既然我有 DTD,是否可以用它创建类?对于我的 XML 消息正在执行的每种类型的“操作”,都有一些可能的响应,并且具有可以由返回的服务器 XML 补充的类将是有利的。

一旦我有了这些类,将来自服务器的 XML 消息反序列化为对象的基本步骤是什么?

最佳答案

将 DTD 转换为 XSD(不确定是否仍需要此步骤):

Free DTD to XSD conversion utility?

从 XSD 生成 C# 类(命令行工具,我是这样做的,不确定是否有更好的方法):

http://quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx

从 XML 序列化回类:

http://support.microsoft.com/kb/815813

关于c# - 将 XML 消息反序列化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600859/

相关文章:

c# - 从通用列表中查找项目

c# - PayPal Error while Make Payment Using card 10752 错误消息

c# - 如何通过 C# 中的异常处理理解 "using"的 JITed 代码

c# - Azure存储: how to read blob data and properties on a single access?

c# - 将对象序列化为 XML 文件会引发异常

c# - 使用 XmlSerializer 序列化 DataType ="time"字段

c# - 将默认选项添加到 SelectList - MVC3 C#

c# - Ruby base64 到 C# base64

.net - 如何在单个节点中构建具有多个 xml 命名空间的 XmlDocument?

c# - 在执行响应的 XML 序列化时修改默认命名空间前缀