我有一个system.document.table对象,我想将该对象标记为Serializable以进行深度克隆。程序集'PresentationFramework,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'中的Type'System.Windows.Documents.Table'未被标记为可序列化。
FlowTable original = new FlowTable();
original = objFlowTab.deepclone();
其中objflowtab有一个表对象
[Serializable]
public class FlowTable : Table
{ ....
....
public static class ExtensionMethods
{
// Deep clone
public static T DeepClone<T>(this T a)
{
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream,a);
stream.Position = 0;
return (T)formatter.Deserialize(stream);
}
}
}
我在formatter.Serialize(stream,a)中遇到错误;
将[Serializable]
属性添加到要序列化的类中。
查看有关C#serialization here的详细信息
对于可序列化的对象,您必须在类定义中包含[Serializable]
[Serializable]
public class YourClass
{
//Your definition here;
}