路过秋天

同样的3年,有的人从学生到当了MVP了,而我却在原地,卖弄当年的代码,秋天的风,有点凄,有点凉!

公告信息
内涵是很强大的~~~别看外表~~~当犀利哥入侵不了的时候,感觉有种莫名的失落~~~
文章档案
最新评论

不支持泛型上下文绑定对象: ContextBoundObject与泛型类

刚刚打算折腾增加这么一个类来处理CYQ.Data的OrmBase里关于查询的泛型返回:


      /// <summary>
    /// ORM扩展基类
    /// </summary>
    [AopAttribute]
    public abstract class OrmBaseT<T> : OrmBase
    {
        /// <summary>
        /// 列表查询
        /// </summary>
        public new List<T> Select()
        {
            return base.Select().ToList<T>();
        }
        /// <summary>
        /// 列表查询
        /// </summary>
        /// <param name="where">查询条件[可附带 order by 语句]</param>
        /// <returns></returns>
        public new List<T> Select(string where)
        {
            return base.Select(where).ToList<T>();
        }
        /// <summary>
        /// 列表查询
        /// </summary>
        /// <param name="topN">查询几条</param>
        /// <param name="where">查询条件[可附带 order by 语句]</param>
        /// <returns></returns>
        public new List<T> Select(int topN, string where)
        {
            return base.Select(topN, where).ToList<T>();
        }
        public new List<T> Select(int pageIndex, int pageSize)
        {
            return base.Select(pageIndex, pageSize).ToList<T>();
        }
        public new List<T> Select(int pageIndex, int pageSize, string where)
        {
            return base.Select(pageIndex, pageSize, where).ToList<T>();
        }
        /// <summary>
        /// 带分布功能的选择[多条件查询,选择所有时只需把PageIndex/PageSize设置为0]
        /// </summary>
        /// <param name="pageIndex">第几页</param>
        /// <param name="pageSize">每页数量[为0时默认选择所有]</param>
        /// <param name="where"> 查询条件[可附带 order by 语句]</param>
        /// <param name="count">返回的记录总数</param>
        public MDataTable Select(int pageIndex, int pageSize, string where, out int count)
        {
            return base.Select(pageIndex, pageSize, where, out count);
        }
    }

OrmBase 类:

  /// <summary>
    /// ORM扩展基类
    /// </summary>
    [AopAttribute]
    public abstract class OrmBase : ContextBoundObject, IDisposable
    {
      ......省略
     }

一切想的很美好,编绎时正常,谁知运行时才出异常:不支持泛型上下文绑定对象


经过一番领悟,是"ContextBoundObject"不支持泛型类的原因,微软MSDN上有这样一段话:

对实施者的说明
公共语言运行库的当前版本不支持通用的ContextBoundObject类型或ContextBoundObject中的非泛型类型,泛型方法。 试图创建这样一个类型的一个实例,会导致TypeLoadException 。

既然知道了,接下来怎么迂回处理,还得想想。。。

秋色园是QBlog的官方站点,由路过秋天创建,基于cyqdata数据层框架开发的支持多用户、多语言、多数据库(access,mssql,oracle)、目录级url等功能强大的博客系统
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"

2013/6/16 3:19:58 | 记录点滴 | |

#2游客[注册][60.173.216.*]2016/2/17 15:06:28
lz,你 问题 现在 解决了吗?

我 也 在 定义ORM的时候,使用 了 你 的这个情况,悲剧了。

找 好久 ,才 发现 是派生了 泛型类导致 的问题,于是百度到 了 你 的 这个 博客。
#1游客[注册][120.199.21.*]2013/7/25 9:33:20
楼主 我也遇到这个问题 请问你有解决吗
回复没有解决方案,只能二者选一。
  • 发表评论