編集:私の問題の解決策は、IXMLSerializerを実装することです。迅速な対応に感謝します。ISerializationコンストラクターが呼び出されない
皆さん、こんにちは、私はこの問題を抱えており、適切な解決策を見つけることはできません。
私は
serializer.Deserialize(new StringReader("<?xml version="1.0" encoding="utf-16"?><Test><Id>0</Id><ChildId>10</ChildId></Test>");
をデシリアライズするには、次のコードを使用して
<?xml version="1.0" encoding="utf-16"?><Test><Id>0</Id><ChildId>10</ChildId></Test>
をdeserialzedするには、次のXMLを送信する場合、私はそれが呼ぶだろうと思わ以下のクラスに
public class Child
{
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
}
[Serializable]
public class Test: ISerializable
{
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
private Child _child = new Child();
public Child Child
{
get { return _child; }
set { _child = value; }
}
public Test()
{
}
protected Test(SerializationInfo info, StreamingContext context)
{
if (info.MemberCount > 1)
Child.Id = info.GetInt32("ChildId");
}
#region ISerializable Members
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("ChildId", Child.Id);
}
#endregion
}
を持っています私のシリアライゼーションコンストラクタですが、それは決して呼び出されていません。
私は別のアプリケーションから送信されたXMLを取得していますので、私は手動で子オブジェクトを作成し、内から手動でその値を割り当てる必要がありますので、私が代わりにこの1<?xml version="1.0" encoding="utf-16"?><Test><Id>0</Id><Child><Id>10</Id></Child></Test>
の上記掲載XMLを使用しています
コンストラクタ。
私が提供できるヘルプとガイダンスは本当にありがたいです。
私はXmlSerializerを使用していますが、シリアル化コンストラクタはデシリアライズ時に呼び出されますが、 – Paleta
どのシリアライザを使用しますか? – Paleta