有没有类似JAX-B的C#?

时间:2009-08-11 09:10:28

标签: c# xml jaxb marshalling

我们正在寻找一个支持编组和解组的库,就像Java中的JAX-B一样,是否有最先进的库可供使用?

3 个答案:

答案 0 :(得分:4)

就像布鲁诺所说,你要找的是System.Xml.Serialization命名空间,更具体地说是XmlSerializer类。要将对象序列化为XML,只需调用Serialize方法,反之即可使用Deserialize方法完成。有关详细信息,请查看MSDN主题Introducing XML Serialization

在序列化为XML时,如果遇到问题,请务必查看(并参与)this thread

答案 1 :(得分:1)

System.Xml.Serialization命名空间是您所需要的。它可以与attributes一起使用,就像Java注释一样。

答案 2 :(得分:0)

有类似的东西,但不像JAXB那样。 Allon Guralnek和bruno conde就是这样说的。不同之处在于反序列化。使用XmlSerializer,您必须提供一个类型。该类型可以来自XSD文件XML Schema,它由XSD.EXE工具处理。该工具为XML Schema中的每个已定义类型创建一个带有部分类的cs文件。使用方便。

但是当你没有有效xml的类型时,你不能在XmlSerilaizer中使用derserializer。场景可能如下所示。您从消息队列中收到xml格式的消息。您可能会收到XML Schema中定义的任何类型。使用JAXB,您可以将xml derserialize为对象,并使用getClass属性来确定它是哪种类型。我在C#中找不到类似的方法。