我正在使用YAXLib序列化我的对象,我在 YAXLib 源代码中发现了以下错误:
如果我尝试序列化包含空值的字典,我会得到一个未处理的nullReference
异常。
Dictionary<string, object> Dict= new Dictionary<string, object>();
Dict.Add("foo", null);
YAXSerializer serializer = new YAXSerializer(typeof (Dictionary<string, object>));
serializer.SerializeToFile(Dict, "path"); // << CRASH
在 YAXSerializer.cs 中深入运行,我发现了以下代码:
foreach (object obj in dicInst) //dicInst is the Dict variable defined above
{
...
// valueObj is null
XElement addedElem = AddObjectToElement(elemChild, valueAlias, valueObj);
...
}
private XElement AddObjectToElement(XElement elem, XName alias, object obj)
{
//obj is null and so obj.GetType() crash
UdtWrapper udt = TypeWrappersPool.Pool.GetTypeWrapper(obj.GetType(), this);
...
}
你们中的一些人面临同样的问题吗?有没有办法解决它?