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();
    }

现在的问题是,当我尝试传递两个或更多这样的两个对象时:

  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被记录的 s。其中之一将告诉您确切的问题。例如,它可能是这样的:

  • 没有公共无参数构造函数
  • 不是公共类型
  • 无效的子类
  • 重复/不明确的元素/命名空间

或类似的东西

于 2012-11-02T12:20:07.000 回答
0

内部异常:

不能为基本类型指定 XmlElement 的类型。

从字段中删除[XmlElement(Type)]属性FbTextField Value

于 2012-11-02T12:45:23.130 回答