Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#二进制反序列化错误,类修改_C#_Serialization_Backwards Compatibility - Fatal编程技术网

C#二进制反序列化错误,类修改

C#二进制反序列化错误,类修改,c#,serialization,backwards-compatibility,C#,Serialization,Backwards Compatibility,(请原谅我有能力有效地描述这种情况;我不是计算机科学家或软件工程师。我只是一名GNC工程师,最终做了大量的编码工作) 我正在尝试加载导致加载错误的二进制序列化文件。我的程序中不再存在(我相信)导致此错误的类。是否有一种“忽略”反序列化部分的通用方法 也许这个类比会有所帮助:我有一个文件描述了如何制造自行车、汽车和飞机。知道如何制造所有这些的人都走了,但是新来的人知道如何制造自行车和汽车。我想把那个文件交给那个新来的家伙,让他给我造一辆自行车和汽车,但他却因为不能造飞机而大发雷霆。我怎么能告诉这个

(请原谅我有能力有效地描述这种情况;我不是计算机科学家或软件工程师。我只是一名GNC工程师,最终做了大量的编码工作)

我正在尝试加载导致加载错误的二进制序列化文件。我的程序中不再存在(我相信)导致此错误的类。是否有一种“忽略”反序列化部分的通用方法

也许这个类比会有所帮助:我有一个文件描述了如何制造自行车、汽车和飞机。知道如何制造所有这些的人都走了,但是新来的人知道如何制造自行车和汽车。我想把那个文件交给那个新来的家伙,让他给我造一辆自行车和汽车,但他却因为不能造飞机而大发雷霆。我怎么能告诉这个家伙(叫他Deserialize先生)忘掉飞机,给我造我的车和自行车呢

提前感谢,


(ObjectManager发现了无效数量的修正。这通常表明格式化程序中存在问题)

似乎是一种需要实现
ISerializable
,并为
反序列化项
方法提供自定义定义的场景。例如:

public class GNCEngineer : ISerializable
{
    public Bike Bike { get; set; }
    public Car Car { get; set; }
    public Plane AirPlane { get; set; }

    public static void SerializeItem(string fileName, IFormatter formatter)
    { 
        // let serializer do their work 
    }

    public static void DeserializeItem(string fileName, IFormatter formatter)
    {
        // Ignore airplane and let rest work.
    }
}
该属性会忽略缺少的类吗?包括任何代码都有助于缩小可能性。