您首先需要将问题隔离到特定的类。然后您可以实现自定义序列化并对其进行调试以找到真正的问题。
只是一个简单的实现,让您逐步完成该过程:
using System;
using System.Runtime.Serialization;
using System.Security.Permissions;
[Serializable]
public class Test : ISerializable
{
private Test(SerializationInfo info, StreamingContext context)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(Test));
foreach (SerializationEntry entry in info)
{
PropertyDescriptor property = properties.Find(entry.Name, false);
property.SetValue(this, entry.Value);
}
}
[SecurityPermission(SecurityAction.LinkDemand, SerializationFormatter = true)]
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(Test));
foreach (PropertyDescriptor property in properties)
{
info.AddValue(property.Name, property.GetValue(this));
}
}
}
Kent 的工具看起来也很漂亮,毫无疑问,它会帮助你。