强制将SDK库中的类标记为可串行化的C#

强制将SDK库中的类标记为可串行化的C#

问题描述:

我的应用程序使用SDK(我最近购买)。尽管我已将我的课程标记为可序列化,但当我要序列化该课程时,会出现错误:强制将SDK库中的类标记为可串行化的C#

在程序集'IOp.FLib,Version = 1.7.0.0,Culture = neutral,PublicKeyTocken = nul'中键入'FLib.FClass' '未标记为可序列化。

我该如何强制将FClass标记为可序列化?

+0

让你自己的类与对象创建错误类内。然后使类Iserializable。请参阅msdn:https://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable(v=vs.110).aspx – jdweng

我发现的最好方法是在序列化对象之前取消分配对象的事件,然后重新分配它们,并在反序列化之后立即分配事件。像这样的:

 MemoryStream stream; 
     . 
     . 
     . 

     // Serialize 
     obj.Event1 -= Obj_Event1; 
     obj.Event2 -= Obj_Event2; 
     ... 
     IFormatter formatter = new BinaryFormatter(); 
     formatter.Serialize(stream, obj); 
     obj.Event1 += Obj_Event1; 
     obj.Event2 += Obj_Event2; 
     ... 

     . 
     . 
     . 

     // Deserialize 
     IFormatter formatter = new BinaryFormatter(); 
     stream.Seek(0, SeekOrigin.Begin); 
     obj = formatter.Deserialize(stream); 
     obj.Event1 += Obj_Event1; 
     obj.Event2 += Obj_Event2; 
     ...