使用Visual Studio 2010从xsd文件生成。net 4.0 c#类(实体)有哪些选项?
当前回答
xsd.exe, Marc Gravell提到过。在我看来,这是最快的启动和运行方式。
或者如果你需要更多的灵活性/选择:
xsd2code VS插件(Codeplex)
其他回答
很简单;只需运行(在vs命令提示符下)
xsd your.xsd /classes
(这将创建你的。cs)。但是请注意,自2.0以来,这里的大部分固有选项都没有太大变化
对于选项,使用xsd /?或参阅MSDN;例如/enableDataBinding可能很有用。
xsd.exe, Marc Gravell提到过。在我看来,这是最快的启动和运行方式。
或者如果你需要更多的灵活性/选择:
xsd2code VS插件(Codeplex)
除了WSDL,我还有xsd文件。上面的工作在我的情况下给错误。它的工作原理如下
wsdl /l:C# /out:D:\FileName.cs D:\NameApi\wsdl_1_1\RESAdapterService.wsdl
D:\CXTypes.xsd D:\CTypes.xsd
D:\Preferences.xsd
我在这里向您展示使用Vs2017和Vs2019的最简单方法 用Visual Studio打开xsd,并按照url建议生成一个示例xml文件。
在设计视图中打开xsd后,单击xml模式资源管理器
2. 在“XML Schema Explorer”中向下滚动以找到根/数据节点。右键单击根/数据节点,它将显示“生成示例XML”。如果没有显示,则意味着您不在数据元素节点上,而是在任何数据定义节点上。
将生成的Xml复制到剪贴板中 在解决方案中创建一个新的空类并删除类定义。只保留Namespace 当您的鼠标指针集中在类内部时,选择EDIT->粘贴特殊->将Xml粘贴为类
当您使用循环引用(即类型可以直接或间接拥有自己类型的元素)时,Xsd.exe不能很好地工作。
当存在循环引用时,我使用Xsd2Code。Xsd2Code可以很好地处理循环引用,并且可以在VS IDE中工作,这是一个很大的优点。它还有许多您可以使用的特性,比如生成序列化/反序列化代码。但是,如果您正在生成序列化,请确保您打开GenerateXMLAttributes(否则,如果没有在所有元素上定义,则会出现排序异常)。
两者都不适合选择功能。你最终得到的是object的列表/集合,而不是你想要的类型。我建议尽可能避免在xsd中进行选择,因为这不能很好地序列化/反序列化到强类型类中。如果你不关心这个,那就不是问题。
xsd2code中的any特性反序列化为System.Xml.XmlElement,我发现这非常方便,但如果您想要强类型对象,这可能是一个问题。当允许自定义配置数据时,我经常使用any,这样XmlElement可以方便地传递给在其他地方自定义的另一个XML反序列化器。