我已经可以序列化可空的 double 类型,也可以序列化其他类型的可空列表,但无法序列化可空 double 类型的列表。
如果我这样做:
List<double?> aList = new List<double?>();
aList.Add(0.1);
aList.Add(null);
Serializer.Serialize(ms, aList);
我遇到了这个错误:
System.NullReferenceException: 对象引用未设置为对象的实例。 在 c:\Dev\protobuf-net\protobuf-net\Meta\TypeModel.cs 的第 169 行 ProtoBuf.Meta.TypeModel.TrySerializeAuxiliaryType(ProtoWriter writer, Type type, DataFormat format, Int32 tag, Object value, Boolean isInsideList) 在 c:\Dev\protobuf-net\protobuf-net\Meta\TypeModel.cs 的第 188 行 ProtoBuf.Meta.TypeModel.SerializeCore(ProtoWriter writer, Object value) 在 c:\Dev\protobuf-net\protobuf-net\Meta\TypeModel.cs 的第 217 行 ProtoBuf.Meta.TypeModel.Serialize(Stream dest, Object value, SerializationContext context) 在 c:\Dev\protobuf-net\protobuf-net\Meta\TypeModel.cs 的第 201 行 ProtoBuf.Meta.TypeModel.Serialize(Stream dest, Object value) 在 c:\Dev\protobuf-net\protobuf-net\Serializer.cs 的第 87 行 ProtoBuf.Serializer.Serialize[T](Stream destination, T instance)
这个代码应该可以工作吗?我做错了什么吗?
List<int?>
、一个List<double?>
和一个List<string>
来进行测试,它们在这里的表现都是相同的。 - Marc Gravell