オブジェクトを XML にシリアル化しようとしています。この XML には多くのプロパティがあり、そのうちのいくつかは読み取り専用です。
public Guid Id { get; private set; }
クラスを [Serializable] とマークし、ISerializable インターフェイスを実装しました。
以下は、オブジェクトをシリアル化するために使用しているコードです。
public void SaveMyObject(MyObject obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
TextWriter tw = new StreamWriter(_location);
serializer.Serialize(tw, obj);
tw.Close();
}
残念ながら、このメッセージで最初の行に落ちます。
InvalidOperationException が処理されませんでした: 一時クラスを生成できません (結果 = 1)。エラー CS0200: プロパティまたはインデクサー 'MyObject.Id' を割り当てることができません -- 読み取り専用です
Id プロパティを public に設定すると、正常に動作します。私が何かをしているかどうか、または少なくともそれが可能であるかどうかを誰かに教えてもらえますか?