我们正在寻找一种类似于Java中的JAX-B支持编组和解组的库,是否有任何最先进的库可供使用?
就像Bruno所说的那样,您要查找的内容在System.Xml.Serialization命名空间中,更具体地说是在XmlSerializer类中。要将对象序列化为XML,只需调用Serialize方法,反之可以使用Deserialize方法。如需了解更多信息,请查看MSDN主题介绍XML序列化。
有时在序列化到XML时可能会出现问题,如果您遇到问题,请务必查看(并贡献给)此线程。
有一些类似于JAXB的东西,但并不完全相同。Allon Guralnek和bruno conde提到了这个类似之处。区别在于反序列化。使用XmlSerializer时,您必须提供一个类型。该类型可以来自XSD文件,即XML模式,该文件由XSD.EXE工具处理。该工具为XML模式中定义的每个类型创建一个带有部分类的cs文件。这很方便。
但是,如果没有有效的xml类型,您无法在XmlSerilaizer中使用derserializer。场景可能如下所示。您从消息队列接收格式为xml的消息。您可能会收到XML模式中定义的任何类型。使用JAXB将xml反序列化为对象,并使用getClass属性确定它是哪种类型。我还没有找到在C#中执行类似操作的方法。