xml シリアライゼーションに関する奇妙な要件があります。
次の C# コードを参照してください (変数 'rootName' が範囲外であるため、コンパイルできません)。私の意図は、クラス GeneralData を「一般」にすることです。つまり、このクラスは、クラス コンストラクターの入力パラメーターに従って、異なるルート要素を持つ異なる XML 文字列にシリアル化できます。
[XmlRoot(ElementName = rootName)]
public class GeneralData : Dictionary<String, Object>, IXmlSerializable
{
public string rootName;
public GeneralData(string rootName)
{
this.rootName = rootName;
}
public System.Xml.Schema.XmlSchema GetSchema()
{
throw new NotImplementedException();
}
public void ReadXml(System.Xml.XmlReader reader)
{
throw new NotImplementedException();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
foreach (var key in Keys)
{
var value = base[key];
writer.WriteElementString(key, value.ToString());
}
}
}
誰でも私がタスクを達成するのを手伝ってくれますか? たぶん、まったく違う方法で?前もって感謝します!!