0

MyObjectストレージ用にシリアル化する必要がある(いくつかの基本的なプロパティと、List(of MyObject)再帰的である)という単純なカスタムオブジェクトがあります。XMLとBinaryのどちらにシリアル化するかはまだわかりませんが、いくつかの異なる名前空間が関係している可能性があるため、最新のメソッドを使用していることを確認したいと思います。何かが足りない。

  • XMLを実行するには、System.Xml.Serialization.XmlSerializer
  • バイナリを実行するには、System.Runtime.Serialization.Formatters.Binary.BinaryFormatter

もありますがSystem.Runtime.Serialization.Formatters.Soap.SoapFormatter、MSDNは、BinaryFormatterを優先して減価償却されていると主張しています。上記の2番目の名前空間にすべてがあると予想していました-使用する必要があるXmlSerializerの新しいバージョンはありますか?

4

3 に答える 3

2

これらは、シリアル化の正しい現在の実装です。

XMLSerializerは、System.Runtime名前空間ではなく名前空間にあります-これは、その場所(System.XML.dllアセンブリ内)と一般的な名前空間System.Xml.Serializationへの依存性が原因であると思われます。System.Xml

また、参考までに、古いバージョンを優先して使用されるクラスの新しいバージョンがある場合、MSDNはそれらに「廃止」のフラグを付けます。たとえば、XmlDataDocumentのヘルプを参照してください。最初の行は次のとおりです。

注:このAPIは廃止されました。

于 2010-06-22T20:24:15.703 に答える
2

.NET3.5以降のDataContractSerializerもあります。いくつかの点でXmlSerializerに比べていくつかの改善があります。

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx

于 2010-06-22T20:35:13.180 に答える
1

JSONシリアル化の場合、次を使用できます。

using System.Web.Script.Serialization;

...

JavaScriptSerializer().Serialize(PocoObject);

.NET2.0でこれをスムーズに機能させるのにいくつかの問題がありました。ここで私自身の質問に対する私の答えを参照してください。

于 2010-06-22T20:32:53.873 に答える