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;
}
}
}
}