• “System.IO.FileNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生


            这个错误是我在打包的时候。发现的,由于我移动了我的project的位置(从C盘移动到了D盘),看一下出错的代码:

        Dim strDB As String = System.Configuration.ConfigurationSettings.AppSettings("DBUser")    '这里改动配置文件就能够确定是查询那个表了。
        '/// <summary>
        '/// depiction:<实例化一个DAL中的User表的类>
        '/// </summary>
        '/// <param name="<參数名称>"><參数说明></param>
        '/// <returns>
        '///<返回值是一个boolean值>
        '/// </returns>
        Public Function CreateUserInfo() As IDAL.IUser
            Return CType(Assembly.Load("DAL").CreateInstance("DAL" & "." & strDB), IUser)
        End Function

               上面strDB的值是从配置文件里取出来的,个人觉得,只个人觉得配置文件就是一个变量库。而不把这个变量写在代码中是由于配置文件是在系统执行的时候,就会将里面的值载入出来。

             首先利用这次机会,我想说说我对反射的理解:

             我们使用反射,首先要清楚命名空间中几个类的关系:

             System.Reflection 命名空间

            (1)AppDomain:应用程序域,能够将其理解为一组程序集的逻辑容器

            (2)Assembly:程序集类

            (3) Module:模块类

            (4)Type:使用反射得到类型信息的最核心的类


            他们之间是AppDomain能够包括多个Assembly,一个Assembly能够包括多个Module,一个Module能够包括多个Type.

             在我们设计的机房收费系统中,上面的代码就是我们动态载入一个程序集(Assembly)。动态载入程序集的方法能够使用三种:Load。LoadFrom和LoadWithPartialName三个Assembly的静态方法。


             显然我们用的是第一种。

    Assembly.Load(),这种方法载入程序集的顺序是:首先它回去全局程序集缓存查找。再到应用程序的根文件夹查找,最后在应用程序的私有路径中查找。

             Assembly.Load("")的使用说明例如以下;   
            并非命名空间。经常使用的是程序集名称,也就是dll的名称   
            重载列表     
            名称     说明       
            Assembly.Load   (AssemblyName)     在给定程序集的   AssemblyName   的情况下,载入程序集。    
     
           关于反射Assembly.Load("程序集").CreateInstance("命名空间.类")
           而无论在哪一层写这段代码当中的("程序集")读取的实际是web层bin目录下的dll,也就是说你反射的类的程序集dll在web层的bin下必须有。
           Assembly.Load("程序集名")

          在看我们的代码:程序集名为"DAL"(DAL为我的D层的文件包),直接上图大家看的更清楚:

     

         大家能够看到在我的UI层(Web层)根本就没有DAL.dll文件,有的话依照字母排列应该在红线处。所以。我们就到DAL层(DALin elease)将DAL.dll相关文件拷到Web层。结果:


          好的,执行一下就好了。


     

  • 相关阅读:
    Calibrating & Undistorting with OpenCV in C++ (Oh yeah)
    opencv中标定函数calibrateCamera
    3D 障碍物感知
    在ubuntu18.04一键安装opencv3.4.1的脚本
    How to run yolov5 model using TensorRT.
    花费 3 天时间整理的代码规范示例代码,你确定不进来看看吗?
    企业级自定义表单引擎解决方案(六)--工作流挂接表单
    企业级自定义表单引擎解决方案(五)--自定义表单典型业务案例
    企业级自定义表单引擎解决方案(四)--实体对象模型实现
    企业级自定义表单引擎解决方案(三)--实体对象模型设计
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7083259.html
Copyright © 2020-2023  润新知