传递 xml 并获取强类型 .NET 对象
我一直在使用 Linq To XML 来将 XML 文档映射到 .NET 对象。
谁能指导我是否也存在可以传递 XML 文档(字符串)并返回强类型 .NET OBject 的地方?
我一直在查看 XSD2Code 并在传递整个 XML 时遇到问题,因为它似乎为每个元素创建单独的类。
I've been using Linq To XML in order to mapp the XML DOcument to .NET OBjects.
Could anyone please guide me whether there any too exist where I can pass XML Document (string) and it returns strongly Type .NET OBject?
I've been looking at XSD2Code and having a problem passing the whole XML as it seems to create separate classes for each Elements.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
非常简单:
获取 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# 对象即可:
如果一切正常,您的
结果
现在包含一个 C# 类实例,它代表 1:1 XML 文件的内容。就是这样!
Pretty easy:
take your XML and run it through the
xsd.exe
command line tool:This will produce a corresponding XML schema file (
yourfile.xsd
)Run the
xsd.exe
tool again, this time on the XSD file, to get a C# class:This will produce a C# class in
yourfile.cs
which represents your XML contentUsing that class in a project, just deserialize your XML into a C# object:
If everything worked as it should, your
result
now contains a C# class instance that represents 1:1 that XML file's content.That's it!
只需使用
xsd
实用程序即可。IIRC,您将其称为
xsd /c yourschema.xsd >类.cs
。如果您有一堆没有架构的 XML,您还可以使用 xsd 来尝试推断架构。无论如何,这应该是一个很好的起点:)
Just use the
xsd
util.IIRC, you call it
xsd /c yourschema.xsd > classes.cs
.If you have a bunch of XML without schema, you can also use
xsd
to try infer a schema. That should be a good starting point anyways :)