强制将SDK库中的类标记为C#中的Serializable

时间:2017-09-25 12:33:33

标签: c# class sdk serializable

我的应用程序使用SDK(我最近购买的)。虽然我已将我的类标记为可序列化,但当我想序列化它时,会发生错误:

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

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

1 个答案:

答案 0 :(得分:0)

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

        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;
        ...