问题描述:
WCF中在将一个自定义类序例化到文件时,会出现如下错误提示:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。
System.InvalidOperationException: 生成 XML 文档时出错。
使用 XmlInclude 或 SoapInclude 属性静态指定非已知的类型。
解决方案:
在类声明处增加“XmlInclude”和“KnownType”两个特性。
例如表A中包括“A1”和“A2”两个自定义对象,代码如下:
/// <summary>
/// 表A
/// </summary>
[DataContract]
[KnownType(typeof(A1))]
[XmlInclude(typeof(A1))]
[KnownType(typeof(A2))]
[XmlInclude(typeof(A2))]
public class Class1
/// 表A
/// </summary>
[DataContract]
[KnownType(typeof(A1))]
[XmlInclude(typeof(A1))]
[KnownType(typeof(A2))]
[XmlInclude(typeof(A2))]
public class Class1
{
/// <summary>
/// 字段A1
/// 字段A1
/// </summary>
[DataMember]
public ArrayList A1 { get; set; }
[DataMember]
public ArrayList A1 { get; set; }
/// <summary>
/// 字段A2
/// 字段A2
/// </summary>
[DataMember]
public ArrayList A2 { get; set; }
[DataMember]
public ArrayList A2 { get; set; }
}