【问题标题】:Forcibly mark a class in a library of a SDK as Serializable in C#在 C# 中强制将 SDK 库中的类标记为可序列化
【发布时间】:2018-03-06 10:24:52
【问题描述】:

我的应用程序使用 SDK(我最近购买的)。虽然我已将我的类标记为可序列化,但是当我想对其进行序列化时,出现错误:

程序集“IOp.FLib, Version=1.7.0.0, Culture=neutral, PublicKeyTocken=nul”中的类型“FLib.FClass”未标记为可序列化。

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

【问题讨论】:

标签: c# class sdk serializable


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2015-02-15
    • 2015-09-27
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多