DCSの使用直列化されたオブジェクトの型が子であるXMLからオブジェクトを逆シリアル化しようとしています。子には直列化復元されたが後でクラスに移動コードのベース。今、これらのプロパティは、デシリアライズされません:DataContractSerializerプロパティの非直列化を派生クラスから基底クラスに移動
<Base i:type="a:DirectoryEntry" xmlns="http://schemas.datacontract.org/2004/07/pending.Core.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:a="http://schemas.datacontract.org/2004/07/pending.Core.Models.Directory">
<Active>true</Active>
<ContentType>DirectoryEntry</ContentType>
<Created>2012-03-12T11:51:25.3401552+01:00</Created>
<a:Location>location</a:Location>
<a:OpenHours>opening</a:OpenHours>
</Base>
のxmlns:aは派生型の名前を表し
は、このXMLを見てみましょう。このクラスはそれらの小道具を保持するために使用されました。現在、それらはBaseクラスに移行され、DCSによってデシリアライズされなくなりました(デシリアライズ後にプロパティはnullになります)。私は、それらの前に(この場合LocationとOpenHours):を使ってプロパティについて話しています。
データを保持するこれらのファイルが多数あります。 DCSでこれらのファイルを正しくデシリアライズするためのオプションは何ですか?
あなたは、基本クラスにプロパティを移動すると、[KnownType]属性は、ベース上での使用の両方と子クラス
これは明らかな答えですが、手動でXMLファイルを変更する必要があります。 DCSがBaseクラスのそれらのプロパティを見つけてそれらに直列化する代替方法を知っていますか? – mare