autosl 发表于 2016-7-27 14:34:16

Dev2005版的Repx文件如何升级

本帖最后由 autosl 于 2016-7-27 14:36 编辑

原先开发的系统使用的是Developer Express Inc.NET.2005,现在使用14.2。WinForm,.Net4.0,控件的升级都很正常。现在就是旧的报表文件 Repx是Soap序列化的,现在的无法反序列。很郁闷。LoadLayout和LoadLayoutFromXML,FromFile都无法加载原先的报表文件。不知哪位大神能帮下忙,提供一下思路。万分感谢。

autosl 发表于 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; }
            
      }
页: [1]
查看完整版本: Dev2005版的Repx文件如何升级