反序列化对象

时间:2019-03-25 13:04:51

标签: c#

在C#代码中,尽管借助自定义的反序列化类对对象进行反序列化,该类会检查安全可序列化类型的列表并返回要反序列化的类型,即使我将空值传递给要反序列化的类型,仍然我的反序列化类返回正确的反序列化对象Type。

下面是代码段-

BinaryFormatter formatter = new BinaryFormatter();

formatter.Binder = new SafeSerializeDeserializeData();

object temp = formatter.Deserialize(ReadStream);

我不确定temp为何总是具有有效的类型,即使我从SafeSerializeDeserializeData类返回null。不熟悉反序列化类或概念。

1 个答案:

答案 0 :(得分:0)

  

即使我从SafeSerializeDeserializeData类返回null

如果返回null,则反序列化器将使用后备类型。

if (m_binder != null)
    type = m_binder.BindToType(assemblyString, typeString);
if ((object)type == null)
    type= FastBindToType(assemblyString, typeString);

这里是source code