Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XSD exe具有相同名称分隔的多个类_C#_Xml_Xsd_Xsd.exe_Xsd2code - Fatal编程技术网

C# XSD exe具有相同名称分隔的多个类

C# XSD exe具有相同名称分隔的多个类,c#,xml,xsd,xsd.exe,xsd2code,C#,Xml,Xsd,Xsd.exe,Xsd2code,当使用XSD.exe从XSD文件生成类时,我试图做的事情会出现一个特定的问题 我有几个(~10)个XSD文件,它们相互依赖,自上而下,还存在一些交叉关系。可以使用XSD.exe工具将这些文件转换为C#文件。因为它们相互依赖,所以它们都应该在一个命令中生成 xsd.exe/c xsdfile1.xsd xsdfile2 xsdfile3 xsdfile4/n:My.csharp.namespace 除了具有类似名称的类之外,此命令工作正常。 假设在xsdfile1.xsd中有一个名为“User”的

当使用XSD.exe从XSD文件生成类时,我试图做的事情会出现一个特定的问题

我有几个(~10)个XSD文件,它们相互依赖,自上而下,还存在一些交叉关系。可以使用XSD.exe工具将这些文件转换为C#文件。因为它们相互依赖,所以它们都应该在一个命令中生成

xsd.exe/c xsdfile1.xsd xsdfile2 xsdfile3 xsdfile4/n:My.csharp.namespace

除了具有类似名称的类之外,此命令工作正常。
假设在xsdfile1.xsd中有一个名为“User”的类,在“xsdfile3.xsd”中有一个名为“User”的类,在生成之后,这些类将被命名为“User”和“User1”,因为当它们具有相同的名称时会发生冲突

我的问题如下:是否可以不在类名的末尾添加数字,而是将这些类分隔为多个名称空间(最好是多个文件和多个名称空间),以便它们可以具有相同的名称?如果可能,请使用xsd.exe工具

不幸的是,我无法在多个文件中重命名重复的类名,因为这些XSD文件已经在我工作的公司中广泛使用

例子:
[System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”、“4.8.3928.0”)]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(“代码”)]
[System.Xml.Serialization.XmlTypeAttribute(TypeName=“MyObject”,命名空间=”http://www.example.com/schemas/Extension")]
[System.Xml.Serialization.XmlRootAttribute(“myobject”,命名空间=”http://www.example.com/schemas/Extension“,IsNullable=false)]
公共部分类MyObject 1:MyObject{
///这里有几处房产
}
MyObject1不应在末尾添加1。如果发电机执行以下操作,则可以修复此问题:

公共部分类MyObject:My.other.namespace.MyObject{
}

hi,您是否有可以重现问题的示例?Xsd2code在处理此类问题时有更多的选择。Xsd.exe非常有限。@martijn很遗憾,我无法向您提供任何类型的示例,但我添加了一个示例来澄清问题。@martijn从Xsd2code开始,我也一直在尝试使用它。尽管它有更多的选项,但我在Xsd2code.Jurjen中也没有找到任何可以解决这个问题的方法,使用Xsd2code,您可以为每个xsd创建一个cs文件。每个cs文件都可以有自己的C#名称空间。当生成需要来自先前生成的cs文件的内容的cs文件时,可以引用该命名空间。我无法重现您的myobject myobject 1问题。如果有2到3个小型xsd以及用于执行xsd的参数列表,这将非常有用。exe@martijn如何引用以前生成的名称空间?这可能会解决问题。