1

オブジェクトをXMLに逆シリアル化するのに問題があります。空のコンストラクターがないものを逆シリアル化しようとしているので、BinaryFormatterを使用する必要がありますか?私は持っています:

  • XMLに逆シリアル化したいクラスで構成されるDLL。
  • タイプを反映することから、パラメーターのないコンストラクターがないことがわかります。
  • このクラスには、空のコンストラクターを持たないプロパティも含まれています。

私の質問は、このクラスをXMLに逆シリアル化することは可能ですか?私はそれを使用する方法を見つけました:

  • BinaryFormatter
  • コンテンツをストリームにロードしました
  • FileStreamを使用してコンテンツを書き込みましたが、最終的にはゴミになりました

前もって感謝します。FormatterServicesと呼ばれるものを見つけました...しかし、これをXmlSerializerと組み合わせて使用​​できるかどうかわかりませんか?

4

1 に答える 1

0
  1. バイナリ データを逆シリアル化してオブジェクトに戻します。

  2. オブジェクトをサロゲート オブジェクトにコピーします。

  3. Xml はサロゲート オブジェクトをシリアル化します。

元の非 xml シリアライズ可能オブジェクトのタイプが「Foo」であると仮定します。

[XmlRoot]
public class FooSurrogate {

     public FooSurrogate() { }; // note the empty constructor for xml deserialization

     public FooSurrogate(Foo foo) {  // this constructor is used in step 2
          // in here you copy foo's state into this object's state
          this.Prop1 = foo.Prop1; // this prop can be copied directly 
          this.Bar = new BarSurrogate(foo.Bar); // this prop needs a surrogate as well  
     } 

     [XmlAttribute]  // note your surrogate can be used to xml-format too!
     public string Prop1 { get; set; }

     [XmlElement]
     public BarSurrogate Bar { get; set; }

}

public class BarSurrogate { 
...
}
于 2013-02-28T14:11:11.140 に答える