1. ホーム
  2. .net

[解決済み] DataContractSerializerとXmlSerializerの比較。各シリアライザーの長所と短所

2023-04-02 06:40:51

疑問点

私のデスクトップアプリケーションでは、オブジェクトのシリアライズには XmlSerializer . 私は DataContractSerializer の代わりに

どのようなシナリオで DataContractSerializer ?

ありがとうございます。

コメント

1. 出力された XML ファイルはローカルに保存されます。他のアプリケーションは、その XML ファイルからオブジェクトをデシリアライズしません。

2. 私のアプリケーションは、.NET Framework 3.5 SP1 で動作しています。

どのように解決するのですか?

Dan Rigsbyがこの件に関して究極の記事を書いています。

XmlSerializer vs. DataContractSerializer (ウェブアーカイブ)

言うべきことはすべて言い、しかも非常に説得力のある方法で。

要するに

XmlSerializerです。

  • は長い間存在していた
  • は、quot;opt-out" です。あなたがシリアライズしないように指示しない限り、公開されたものはすべてシリアライズされます ([XmlIgnore])

DataContractSerializerは。

  • 新参者
  • 速度のために最適化されている (通常、XmlSerializer より約 10% 速い)
  • opt-in" - 指定されたもののみ。 [DataMember] としてマークされたものだけがシリアライズされます。
  • でマークされたものは [DataMember] はシリアライズされます。 public であろうと private
  • はXML属性をサポートしません(スピードのため)。