我一直在使用 Linq To XML 将 XML 文档映射到 .NET 对象。
谁能指导我是否存在我可以传递 XML 文档(字符串)并强烈返回 Type .NET OBject 的地方?
我一直在查看 XSD2Code 并在传递整个 XML 时遇到问题,因为它似乎为每个元素创建了单独的类。
相当容易:
获取您的 XML 并通过xsd.exe
命令行工具运行它:
c:\> xsd.exe yourfile.xml
这将生成一个对应的 XML 模式文件 ( yourfile.xsd
)
再次运行该xsd.exe
工具,这次是在 XSD 文件上,以获取 C# 类:
c:\> xsd.exe /c yourfile.xsd
yourfile.cs
这将生成一个代表您的 XML 内容的 C# 类
在项目中使用该类,只需将您的 XML 反序列化为 C# 对象:
XmlSerializer ser = new XmlSerializer(typeof(YourClass));
var result = ser.Deserialize(new FileStream(@"D:\temp\yourfile.xml", FileMode.Open));
如果一切正常,您result
现在包含一个 C# 类实例,它以 1:1 的比例表示该 XML 文件的内容。
而已!
只需使用实用xsd
程序。
IIRC,你叫它xsd /c yourschema.xsd > classes.cs
。
如果你有一堆没有模式的 XML,你也可以用它xsd
来尝试推断模式。无论如何,这应该是一个很好的起点:)