ibatis中加载typeAlias时报错:The error occurred while loading SqlMap. - initialize type alias

当在ibatis中遇到'The error occurred while loading SqlMap. - initialize type alias'的报错,问题可能在于TypeAlias所指的实体类在非启动项目的程序集中且未被激活。解决方案是在访问数据库前,通过实例化TypeAlias对应的类来触发程序集加载,确保ibatis能正确识别并加载typeAlias。
摘要由CSDN通过智能技术生成

<span style="font-family: Arial, Helvetica, sans-serif;">一个project 中用到Ibatis做数据持久层,可以正常运行。但是将这个project引用到另一个solution中时,就会报错。</span>


追踪到ibatis内核代码中,发现IBatisNet.Common.Utilities.TypesResolver类中有一个LoadTypeByIteratingOverAllLoadedAssemblies方法,它的作用就是用反射的方式为TypeAlias节点map出对应的自定义实体类。

 private static Type LoadTypeByIteratingOverAllLoadedAssemblies(TypeAssemblyInfo typeInfo)
        {
            Type type = null;
            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
            foreach (Assembly assembly in assemblies)
            {
                type = assembly.GetType(typeInfo.TypeName, false, false);
                if (type != null)
                {
                    return type;
                }
            }
            return type;
      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值