実行中に XML ドキュメントを繰り返しシリアル化および逆シリアル化する必要がある Windows サービス アプリケーションを作成しています。コンパイル時に不明なジェネリック型をシリアル化および逆シリアル化する必要があるため (シリアル化/逆シリアル化する必要がある型の数が先験的にわかりません)、キャッシュを保持するのが良い考えかどうかを知りたいですオブジェクトをシリアル化および逆シリアル化するためにインスタンス化します。
XmlSerializer クラス インスタンスは内部でメモリ内に動的アセンブリを作成し、メモリ内で動的に作成されたアセンブリはガベージ コレクションされないため、キャッシュすることをお勧めします。
DataContractSerializer は軽量コード生成に依存していると読みましたが、その詳細についてはよくわかりません。そのため、この質問をしているのですが、必要に応じて DataContractSerializer インスタンスをインスタンス化すると、XmlSerializer のようにメモリ リークが発生することを理解する必要がありますか?
内部プロパティをシリアル化できるように、XmlSerializer の代わりに DataContractSerializer を使用することにしました。