- 积分
- 0
- 在线时间
- 25 小时
- 主题
- 1
- 注册时间
- 2015-7-29
- 帖子
- 12
- 最后登录
- 2018-6-11
- 帖子
- 12
- 软币
- 228
- 在线时间
- 25 小时
- 注册时间
- 2015-7-29
|
楼主 |
发表于 2016-7-28 21:35:25
|
显示全部楼层
XRSerializationInfoBase类的GetValue函数不够完善,converter.Convert(item, type)会失败。改为蓝色部分即可。
public abstract class XRSerializationInfoBase
{
FormatterConverter converter;
protected XRSerializationInfoBase()
{
converter = new FormatterConverter();
}
protected abstract bool ContainsKey(string name);
protected abstract object GetValue(string name);
protected abstract void AddValueInternal(string name, object value);
public object GetValue(string name, Type type, object defaultValue)
{
if (!ContainsKey(name)) { return defaultValue; }
object item = GetValue(name); //return item == null || type.IsAssignableFrom(item.GetType()) ? item : converter.Convert(item, type);
if (item == null || type.IsAssignableFrom(item.GetType())) { return item; }
else { object result = defaultValue; try { result = converter.Convert(item, type); } catch { } return result; }
}
|
|