在C#代码中,尽管借助自定义的反序列化类对对象进行反序列化,该类会检查安全可序列化类型的列表并返回要反序列化的类型,即使我将空值传递给要反序列化的类型,仍然我的反序列化类返回正确的反序列化对象Type。
下面是代码段-
BinaryFormatter formatter = new BinaryFormatter();
formatter.Binder = new SafeSerializeDeserializeData();
object temp = formatter.Deserialize(ReadStream);
我不确定temp
为何总是具有有效的类型,即使我从SafeSerializeDeserializeData
类返回null。不熟悉反序列化类或概念。
答案 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。