zoukankan      html  css  js  c++  java
  • 工厂模式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,添加引用即可

  • 相关阅读:
    RF操作execl
    fiddler 设置代理以后不能访问网络的解决办法
    Eclipse没有Web插件和JavaEE插件咋整
    mysql 分页查询的标准写法
    java读写操作
    java 链接mysql
    关于博客
    响应式排版中的基础知识
    前端性能优化最佳实践
    HTTP必知必会
  • 原文地址:https://www.cnblogs.com/May-day/p/5900047.html
Copyright © 2011-2022 走看看