我在使用接口模式下的remoting,既服务器与客户端共用接口,dll通过反射加载。现在的问题是:我的dll文件没有保持在当前工作目录下,因此在服务器端通过反射加载dll后,在客户端调用接口时,出现“无法加载类型”的错误。我猜测是服务器端的接口和我反射的dll没有关联的缘故,因为当我将dll放入当前工作目录后,再调试程序时,就不会出现错误,即客户端通过接口可以得到dll里类的方法。但这不是我要的效果,因为我的dll的程序集名很可能出现相同的情况,即一个程序集名可以有多个版本,使用的时候根据配置文件里的配置加载相应的dll。
在appdomain有个程序集影像复制的概念,我是否能够通过这个功能先将要加载的dll的影像复制到当前工作目录,然后加载、remoting。不过现在的问题是对这个概念不是很熟悉,不知道是否可以这样使用,请高手指点。
我现在使用一个一个笨办法来解决这个问题:先将dll复制到当前工作目录,然后再加载。这样的话,当我服务器启动的时候,需要将dll复制一遍;appdomain卸载的时候又要将dll从工作目录删除掉,很是麻烦,而且效率太低。