私は変更することはできませんXMLを与えていると私はカスタムクラスにそれをデシリアライズする必要があります。複数のネストされたアイテムでXMLを逆シリアル化する方法
<Person>
<Addresses>
<MainAddress>
<Country />
<City />
</MainAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
... other additional addresses
</Addresses>
... other elements
</Person>
は、その後、私はデシリアライズ:
XmlSerializer serializer = new XmlSerializer(typeof(Person), namespace);
Person person = serializer.Deserialize(stream) as Person;
デシリアライザ単純な要素が直列化復元されている場合には正常に動作します。 アドレスのような要素があった場合、私はここのようにそのクラスにIXmlSerializableを実装:link text
問題はreader.ReadElementContentAsString()は複雑な要素で使用することができないということです。
注MainAddressプロパティは、MainAddressStoreクラスなどで実装できます(プロパティと型の共有名を持つのが混乱することがあります)。もちろん、このようなスケルトンクラスではあまり重要ではありませんが、その目的はシリアル化のサポートだけです。 –
クラス名と異なるプロパティ名を編集しました。別のMainAddressクラスとAdditionalAddressクラスが本当に必要かどうかは分かりません。私はそれらに異なるXmlRootの名前で声明を出したかった。 – PanJanek
私は動作しません。 MainAddressには値が設定されていますが、AdditionalAddressは設定されていません。 – jlp