0

我使用的是DataContractSerializer,迄今爲止它提供了我需要的一切。 現在我需要兩個更多的功能,並且我已經知道它們不適用於DataContractSerializer。使用什麼序列化程序?

  1. 我需要能夠序列化的一些字段作爲XmlComments
  2. 一些成員應直接序列化爲在包含對象的XML屬性。

XmlSerializer既不支持opt-in,也不支持我需要的fields/privates,所以很不幸,這是不可能的。

可以以某種方式使我自己的序列化器尊重現有的「XmlAttribute」 - 屬性和我的自定義「XmlComment」 - 屬性,同時使用DataContractSerializer作爲基礎?

也許已經有一個第三方序列化器提供我所需要的?我沒有找到一個。

我不介意編寫自定義序列化程序,但我想盡可能多地重複使用現有的代碼。

+0

「XmlSerializer既不支持選擇,也不支持字段/私人」 - >爲什麼你不能公開字段/私人作爲公共屬性? – loopedcode

+0

我在這一個環狀碼。您應該創建一個完全獨立的數據模型對象,其唯一目的是_data_的序列化/反序列化。將該數據模型單獨轉換爲您的業務對象或從其中轉換出來。您的業​​務對象可以以這種方式維護其私有字段/實現,並且您的數據模型對象可以專注於公共屬性或各種XML屬性裝飾以滿足您所需的架構。 –

+0

@ChrisSinclair他不想XML的評論,儘管...即使DTOs只是爲了序列化而設計,這將需要一些自定義的序列化。 – Yaur

回答

0

您可以使用XmlSerializer。你只需要在默認規則無法處理的對象上實現IXmlSerializable,並自己完成繁重工作。這比自己的串行器IMO更簡單。

相關問題