1

それは私にとってもっと役に立ちます。もしそうなら、以下の質問に答えてください。

  1. XmlSerializer はオーダーベースですか? 例) 私のクラス/XML は以下のようなものです。プロパティの順序が変更されました。それでもこれはシリアライズ/デシリアライズしますか?

       public class Movie
       {
        public string Title  { get; set; }
        public int Rating    { get; set; }
       }
    

    そして、XMLは次のようになります

      <?xml version="1.0" encoding="utf-8"?>
      <Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <Rating>6.9</Rating>
         <Title>Starship Troopers</Title>
      </Movie>
    
  2. 逆シリアル化中に何が起こるか; クラスにプロパティ (タイトルなど) がないが、xml にその要素がある場合は?

  3. スーパークラス (A) とそのスーパークラス (A) の 2 つのサブクラス (B、C) があるとします。実行時に、xml 応答を取得したときに以下で渡す必要があるオブジェクトを決定するにはどうすればよいですか? xml の RootElement (B または C) が何かわからないので?

     XmlSerializer ser = new XmlSerializer(typeof(B or C)); ??
    



第2四半期を克服するための1つのソリューション


4

1 に答える 1

1

質問番号 2 への回答: InvalidOperationException が発生します。

デシリアライズ中にエラーが発生しました。元の例外は、InnerException プロパティを使用して利用できます。

ここを参照してください:msdn

質問番号 3 への回答:

問題の解決策は、IXmlSerializable インターフェイスを実装することです。これにより、シリアル化プロセス全体を制御できます。このコードプロジェクトの記事を見てください。これは非常に良いスタートです

ここを参照してください:コードプロジェクト

于 2012-12-11T19:32:19.150 に答える