用反射调另一个文件夹下的DLL文件,那个DLL依赖的相关DLL都在同文件夹下,但我程序本身根目录下也有几个同名文件,反射时就不会走指定的文件夹,而是直接加载了我本地根目录下的文件,请问,有没有办法限制我反射加载时必须加载指定的文件夹下的,即便我程序根目录下有,我也不加载?

解决方案 »

  1.   

    反射的时候指定dll路径即可。
      

  2.   

    你反射读的文件夹  debug下 应该是本地根目录下的文件   我的反射是可以用读反射的文件夹下的文件的  不读debug目录的
      

  3.   

    debug的时候默认是根目录的 ,直接发布测试就知道了
      

  4.   


    您说的意思是不要Debug版本,如果是Release版就不存在这个问题?
      

  5.   

    其实一次反射还好,麻烦就麻烦在如果是二次反射,就不好处理了,即主程序反射了一个文件夹下的的DLL,而这个DLL又反射自己目录下的一个DLL,就报文件依赖存在问题,而依赖的文件的确是存在同目录下的。
      

  6.   

    问题1、
    可以使用
    Directory.GetFiles(Directory.GetCurrentDirectory() + "\\Plugins", "*.dll")
    指定文件名
    问题2、
    反射的DLL类继承的接口不同即可区分,DLL都是每次遍历的,筛选出继承指定接口的类进行处理
    reflectType.FindInterfaces(筛选标志,"接口名")
      

  7.   

    指定目录 不就可以家在任意dll了么   一般从你当前应用下的路径去定位 ../就是上一级 /就是下一级 加上Directory 或者 File可以定位到任意位置 的任意个文件