2

シリアライズされたオブジェクトの古いバージョンからデシリアライズしようとしていますが、elementNameX_backField is not expected というエラーが表示されます。要素 newElementName_backingField が必要です。私のコードは次のようになります。

using (var fileStream = new FileStream(fullName, FileMode.Open))
                using (var decryptStream = new CryptoStream(fileStream, decryptor, CryptoStreamMode.Read))
                using (var reader = XmlDictionaryReader.CreateBinaryReader(decryptStream, XmlDictionaryReaderQuotas.Max))
                {

                    var ser = new DataContractSerializer(typeof(classA), KnownTypes);
                    rv = ser.ReadObject(reader) as classA;
                }
[DataContract]
public class classA
{
 [DataMember]
 public classB ClassBee {get; set;}
}
[Serializable]
public class ClassB
{
[XmlElement("element")]
public customType1 elementNameX{get; set;}
[XmlElement("newElement")]
public customType2 newElementName{get; set;}
}

すでにシリアル化されたファイルに存在しない場合、newElement を無視する方法についてのアイデアはありますか?

4

1 に答える 1