我有一个system.document.table对象,我想将该对象标记为Serializable以进行深度克隆。例外情况是在'PresentationFramework,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'中键入'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);
中遇到错误答案 0 :(得分:5)
将[Serializable]
属性添加到要序列化的类中。
查看有关C#serialization here
的详细信息答案 1 :(得分:2)
对于可序列化的对象,您必须将[Serializable]
包含在您的类定义
[Serializable]
public class YourClass
{
//Your definition here;
}