2

特定の関数から異なるオブジェクトを渡すにはどうすればよいですか。

 static public void SerializeToXML(FbTextView p)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(FbTextView));
        TextWriter textWriter = new StreamWriter(@"D:\movie.xml");
        serializer.Serialize(textWriter, p);
        textWriter.Close();
    }

ここで問題となるのは、次のように2つ以上のオブジェクトを渡そうとすると次のようになります。

  static public void SerializeToXML(FbTextView p,FbTextField q)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(FbTextView));
        XmlSerializer Serializer = new XmlSerializer(typeof(FbTextField));
        TextWriter textWriter = new StreamWriter(@"D:\movie.xml");
        serializer.Serialize(textWriter, p);
        textWriter.Close();
    }

エラーがスローされます:XMLParse例外が処理されませんでした。内部例外は次のとおりです。「タイプ'FBformBuilder.FbTextFieldを反映するエラーが発生しました」ありがとうございます。

4

2 に答える 2

1

問題は、内部の例外で完全に詳しく説明されます。試す:

try {
    // ... your code
} catch(Exception ex) {
    while(ex != null) {
        Trace.WriteLine(ex.Message);
        ex = ex.InnerException;
    }
    throw;
}

次に、ログに記録されるすべてのを確認し.Messageます。これらの1つは、正確な問題を教えてくれます。たとえば、次のようになります。

  • パブリックパラメーターレスコンストラクターはありません
  • パブリックタイプではありません
  • 無効なサブクラス
  • 重複した/あいまいな要素/名前空間

または同様のもの

于 2012-11-02T12:20:07.000 に答える
0

内部例外:

XmlElementの型は、プリミティブ型には指定できません。

フィールド[XmlElement(Type)]から属性を削除FbTextField Value

于 2012-11-02T12:45:23.130 に答える