1

ユーザーが提供したデータのセットをファイルに保存します。プロジェクトを引き継いだとき、すべてがプレーンテキストファイルに保存されました。再設計したところ、ストレージはXMLファイルになりました。プロセスが開始したら、 XDocumentクラスとXElementクラスを使用してXMLファイルを読み取ります。値を取得したら、実行中のオブジェクトのコンストラクターに入れます。

XMLデータを自動的に読み込んで、オブジェクトのインスタンスを変換(または変換)する方法があるのではないかと思います。

したがって、代わりに:

XElement fromFile = XElement.Load(pathName);
XElement newStuff =
  new XElement("MainNode",
    new XElement("SubNode1", myObject.valueOfSubNode1),
    new XElement("SubNode2", myObject.valueOfSubNode2));
fromFile.ReplaceAll(newStuff);

XmlTextWriter writer = ...;
fromFile.Save(writer);

myObject自体のインスタンスを「保存」したいと思います。それは可能だと思います。どこから始めればいいのかわからない。

4

1 に答える 1

1

タイプをXMLにシリアル化するには:

public static string Serialize<T>(T data)
{
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));

    StringWriter sw = new StringWriter();
    xmlSerializer.Serialize(sw, data);
    return sw.ToString();
}

XMLからオブジェクトに逆シリアル化するには:

public static object DeSerialize<T>(string data)
{
  StringReader rdr = new StringReader(data);

  XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));

  var result = (T)xmlSerializer.Deserialize(rdr);

  return result;
}

こちらもご覧ください:C#XMLシリアル化/非シリアル化

于 2013-03-18T22:44:43.240 に答える