1

XSD2Code で生成されたクラスがあり、すべてが機能しています。ただし、オブジェクト階層からの CRUD を容易にするために、ID をすべての複合クラス タイプ、つまり Order、OrderItem などの GUID として生成して保存したいと考えています。そこで、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 がシリアル化されていないということです。これは、生成されたクラス、つまり "Product" に含まれていないためです。これは、継承されているためにコードの残りの部分がそれを見ることができるため、少し奇妙です。

何か考えはありますか?

編集:

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 に答える