私のクラスを構築すると、次のようになりません。C#XMLデシリアライザは、オブジェクトを適切
public class MyClass
{
private void MyClass() { } //just to satisfy the XML serializer
public void MyClass(int a, int b)
{
A = a;
B = b;
C = a + b;
}
public int A { get; set; }
public int B { get; set; }
public int C { get; private set; } //private set is only to
//satisfy the XML Serializer
public void DoSomeMath()
{
Console.WriteLine("{0} + {1} = {2}\n", A, B, C)
}
}
私は& Bのパラメータを持つ自分のMyClassのオブジェクトをインスタンス化するときに正常に動作しますが、デシリアライザはparamaterlessコンストラクタを呼び出します。別のメソッドを作成せずにCを初期化する方法と、逆シリアル化した後に呼び出す方法はありますか?あなたは、単に似Cのgetterを変更することができ
あなたが各1を使用しているシリアライザこのため、シリアル化イベントがあり異なっているある – Jim
'それは同じ値としてA、BおよびCの値を戻す必要がありますdeseralized System.Xml.Serialization.XmlSerializer' –
それがシリアル化されたとき。したがって、保存時には1、2、3となり、デシリアライズ後に再び1、2、3になるはずです。したがって、あなたのコードには何も問題はありません。 –