Dev2005版的Repx文件如何升级
本帖最后由 autosl 于 2016-7-27 14:36 编辑原先开发的系统使用的是Developer Express Inc.NET.2005,现在使用14.2。WinForm,.Net4.0,控件的升级都很正常。现在就是旧的报表文件 Repx是Soap序列化的,现在的无法反序列。很郁闷。LoadLayout和LoadLayoutFromXML,FromFile都无法加载原先的报表文件。不知哪位大神能帮下忙,提供一下思路。万分感谢。
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; }
}
页:
[1]