XSD无法基于继承的类从XML创建类

时间:2011-04-01 09:16:02

标签: c# .net xml xml-serialization xsd.exe

基于通过序列化另一个C#类生成的XML,我遇到了创建* .cs(C#类)的问题。 XSD.exe引发以下错误:

- A column named 'Conditions' already belongs to this DataTable: cannot set a
  nested table name to the same name.

我的流程如下:

  1. 编写一些C#代码(以下示例)
  2. 序列化为XML使用XSD.EXE
  3. create * .cs反序列化为新的* .cs
  4. (运费)等
  5. 序列化为XML的类(在第1点)看起来像这样:

    public class A
    {
       public A(){}
       private List<string> _cond = new List<String>();
       public List<string> Conditions 
       {
          get{ return _cond; }
          set{ _cond = value }
       }
    }
    
    public class B:A
    {
    }
    public class C:A
    {
    }
    
    public class Data
    {
      B b = new B();
      C c = new C();
      /* ... ADD SOME DATA etc ... */
    } 
    
    // After that I serialize to XML the "Data" class object
    

    有人可以建议解决方法吗?这显然是由遗留条件属性

    引起的

1 个答案:

答案 0 :(得分:0)

您可以更改xsd.exe创建输出的方式,在您的情况下,使用/ c(lasses)开关是有意义的。然后,它不会创建数据集而是创建“普通”类。

还有LinqToXsd,它有一个相当不错的代码生成器。