1

我有一个 XSD2Code 生成的类,一切正常。但是,我想在所有复杂类类型(即 Order、OrderItem 等)上生成 ID 并将其存储为 GUID,以促进对象层次结构中的 CRUD。因此,我没有向 XML 模式中的每个“记录”样式数据集添加一个 ID 元素,而是创建了一个父抽象类,我的 XSD2Code 类从中继承。我的代码可以看到 ID,它会生成 ID,但是 XSD2Code 似乎没有看到 ID,因此 ID 没有被序列化。

我的父类代码:

namespace OrderSystem
{
public abstract class Master
{
    private string IdField;

    [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 999)]
    public String ID
    {
        get 
        { 
            if (IdField == null)
            {
                IdField = Guid.NewGuid().ToString();
            }
            return IdField;
        } 
    }

  }
}

我的 XSD 生成的代码使用了它:

public partial class Product : Master
{

我的直觉是 ID 没有被序列化,因为它不在生成的类中,即“产品”,这有点奇怪,因为其余代码可以看到它,因为它是继承的。

请问有什么想法吗?

编辑:

public class Master
{
    private string IdField;

    [System.Xml.Serialization.XmlAttributeAttribute()]
    public String ID
    {
        get 
        { 
            //if (IdField == null)
            //{
            //    IdField = Guid.NewGuid().ToString();
            //}
            return IdField;
        }
        set
        {
            if (value == null)
            {
                IdField = Guid.NewGuid().ToString();
            }
            else
            {
                IdField = value;
            }
        }
    }

}
4

1 回答 1

0

这是我自己整理的。证明是代码错误。我还删除了“摘要”,不确定是否有必要。见上面的编辑。

于 2012-12-05T18:37:36.887 回答