-1
我的應用程序使用SDK(我最近購買)。儘管我已將我的課程標記爲可序列化,但當我要序列化該課程時,會出現錯誤:強制將SDK庫中的類標記爲可串行化的C#
在程序集'IOp.FLib,Version = 1.7.0.0,Culture = neutral,PublicKeyTocken = nul'中鍵入'FLib.FClass' '未標記爲可序列化。
我該如何強制將FClass標記爲可序列化?
我的應用程序使用SDK(我最近購買)。儘管我已將我的課程標記爲可序列化,但當我要序列化該課程時,會出現錯誤:強制將SDK庫中的類標記爲可串行化的C#
在程序集'IOp.FLib,Version = 1.7.0.0,Culture = neutral,PublicKeyTocken = nul'中鍵入'FLib.FClass' '未標記爲可序列化。
我該如何強制將FClass標記爲可序列化?
我發現的最好方法是在序列化對象之前取消分配對象的事件,然後重新分配它們,並在反序列化之後立即分配事件。像這樣的:
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;
...
讓你自己的類與對象創建錯誤類內。然後使類Iserializable。請參閱msdn:https://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable(v=vs.110).aspx – jdweng