.NET JAXB等价吗?

Jos*_*eph 9 .net c# jaxb

在.NET中是否有一个等效的JAXB库?我正在尝试将XML转换为.NET类.我有XSD,但不知道如何将收到的XML转换为具体的类?我使用XSD工具从模式生成一个类,但我想将我即时收到的XML转换为我可以在代码中使用的对象.

我在这里看到了解决这个问题的线程,但我的查询是 - 我希望创建的对象包含我在XML中收到的数据(即必须填充字段值).

Mik*_*Two 10

您可以使用xsd.exe生成该类,然后XmlSerializer在您的代码中使用它来填充该类.例如,如果xsd.exe创建了一个名为的类,Foo您可以编写:

Foo someFoo;
using (var stream = new FileStream("foo.xml", FileMode.Open))
{
    var serializer = new XmlSerializer(typeof(Foo));
    someFoo = serializer.Deserialize(stream);
}
Run Code Online (Sandbox Code Playgroud)


Jos*_*eph 0

这是一个更好的方法,更接近我正在寻找的东西:

static public string serializeObject(ProductPriceLines objecteToSerialize)
    {
        System.Xml.Serialization.XmlSerializer mySerializer = new System.Xml.Serialization.XmlSerializer(typeof(ProductPriceLines));

        System.IO.MemoryStream t = new System.IO.MemoryStream();
        mySerializer.Serialize(t, objecteToSerialize);


        UTF8Encoding utf = new UTF8Encoding();
        string strbytes = utf.GetString(t.ToArray());


        return strbytes;
    }
Run Code Online (Sandbox Code Playgroud)

  • 并不是说你错了,只是好奇为什么这个解决方案比 Mike Two 的更好。一旦你回复+1。 (2认同)
  • 您的问题要求 XML => 对象。你的答案是相反的:object => XML。 (2认同)