工厂模式Assembly.Load(path).CreateInstance 反射出错解决办法

项目结构:

 

 

DALFactory 反射代码反射

//使用缓存
        private static object CreateObject(string AssemblyPath,string classNamespace)
        {            
            object objType = DataCache.GetCache(classNamespace);
            if (objType == null)
            {
                try
                {
                    Assembly assm = Assembly.Load(AssemblyPath);//第一步:通过程序集名称加载程序集
                    objType = assm.CreateInstance(classNamespace);// 第二步:通过命名空间+类名创建类的实例。        
                    DataCache.SetCache(classNamespace, objType);// 写入缓存
                }
                catch//(System.Exception ex)
                {
                    //LogOperate.WriteErrorLog("创建反射异常(不使用缓存)", ex);
                    //string str=ex.Message;// 记录错误日志
                }
            }
            return objType;
        }

当程序运行时到Assembly assm = Assembly.Load(AssemblyPath); assm值为空则会报错

错误原因一:

配置文件中的Key的Value必须跟,SQLServerDAL中的程序集名称一致。

右键SQLServerDAL,属性,可查看程序集名称

错误原因二:

站点没有引用SQLServerDAL,添加引用即可

 

转载于:https://www.cnblogs.com/May-day/p/5900047.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值