http://topic.csdn.net/u/20081120/14/b83b1354-adf2-47ce-b9ca-b60e6e87114d.html我的一个问题的帖子,问题没有解决,所以我又开一个帖,希望能解决。问题总结起来就是这样:如果A程序集没有和B程序集有关系,A程序集里要加载B程序集则会报错。但是在三层中,我要达到的效果就是要让BLL层和DAL层实现独立性,但是这样我就加载不到了。问题困扰我很多天了,望好心的高手帮帮忙!

解决方案 »

  1.   

    Type type = object.GetType();
    Propertys[] propertys = typeGetProperties()
      

  2.   

    Type type = object.GetType(); 
    Propertys[] propertys = type.GetProperties()
      

  3.   

    通过type获取property、method等...
      

  4.   

    那注册成com或webservice去调用好了
      

  5.   

    我觉得问题根本并不是你所描述的那样,最简单的一个例子,开发中用到的后期绑定(插件模式),就是运行期间动态加载一个程序集。只要这个程序集能找得到。另外一篇帖子提到的问题从你的描述上我觉得
    1.Assembly assembly = Assembly.Load("DAL")加载不到问题应该是路径问题。
    2.但是如果我将接口放入了IDAL层,则编译没有问题,运行时就出现那个错误!这个错误是什么?加载不到?
    3.业务层把相关的数据存取的dll也得加上
      

  6.   

    1.Assembly assembly = Assembly.Load("DAL")加载不到问题应该是路径问题。 
    这里我用的程序集名称,不包括路径的,PetShop也是用程序集的名称,而且我用过绝对路径也不行。2.但是如果我将接口放入了IDAL层,则编译没有问题,运行时就出现那个错误!这个错误是什么?加载不到? 
    错误就是显示加载不到。这个问题要搞死我了!!!首先明确一点,如果A应用程序中要加载B应用程序,用Assembly.Load("B")是会出错的(加载不到)!除非A中有用到B的类,而且添加了引用!——————这个没错吧?
      

  7.   

    Assembly.LoadFile(绝对路近),这个你试过 没?
      

  8.   

    用绝对路径加载可以,说明只要加载的时候能找到指定的.dll文件,就可以加载了。
    现在问题是:如果DAL没有用到DAL里的类,怎么在编译的时候不会将DAL生成在BLL的bin文件夹里,那就无法加载了。
    有什么办法能解决呢?
      

  9.   

    我也试过将DAL直接生成在BLL的Debug文件夹下,但是一样不行,而且我看PetShop中也没需要这样做。
      

  10.   

    靠终于找到答案了!原来PetShop里可以加载是因为在Web层Debug里有.dll文件。我将DAL层生成在UI层的Debug里,就可以了!问题是找到了,但是我现在用的方法是让DAL层生成在UI层的Debug里,有什么办法可以让它生成在自己的Debug里,又可以复制到UI层的Debug里呢?