シリアル化する必要がある私のクラス(カメラ)には、シリアル化の手段があまりないメンバーが1つあり、そのクラスを変更できません。しかし、クラス全体のうち、シリアル化してからそれに基づいて逆シリアル化できるパラメーターは2〜3個しかありません。
XmlSerializer SerializerObj = new XmlSerializer(typeof(Camera));
TextWriter WriteFileStream = new StreamWriter(@"C:\test.xml");
SerializerObj.Serialize(WriteFileStream, cc);
WriteFileStream.Close();
カスタムシリアル化コードをどこにどのように配置して、オブジェクトからそれらの2〜3個のパラメーターを取得し、シリアライザーに渡すことができます。次に、逆シリアル化中に、これらの2〜3個のパラメーターを使用してそのオブジェクトを再度作成します。
アップデート。サンプルコード:
[Serializable()]
public class Camera
{
public string name;
public int index;
public double distance;
public List<string> CameraList { get; set; }
[XmlIgnore()]
public GMarkerGoogle marker;
public Camera()
{
}
}
marker
シリアル化手段を持たないメンバーです。しかし、そこで、marker.position
そのmarker.rotation
オブジェクトを再作成できます。