关于 反射 接口 dll 的问题
在dll中声明一个接口 
 在dll外用反射调用.如果是直接调用dll里的类的话是可以的。若调用接口,在创建实例时,要进行对象强制转换。此时的接口对象是不存在于dll外的。要怎么进行接口调用?
------解决方案--------------------public static IDALFactory factory;   
 TcpChannel channel = new TcpChannel(); 
             ChannelServices.RegisterChannel(channel, false); 
             factory = (IDALFactory)Activator.GetObject(typeof(IDALFactory), serverurl);   
 以上给楼主作一个参考, factory 是个搂口, 具体实现在远程 服务器. 注意 serverurl.
------解决方案--------------------我应该明白了你的意思!是这样的吗?   
 你想在客户端不放置真正的远程对象的dll,只放置远程对象dll里面的所有对象的接口 ,这样比较安全,免得被人家看到了真正的对象?
------解决方案--------------------明白了 
 myDllAssembly.GetType( "IDESCoder ");  有问题   
 我通过测试,IDESCoder通过GetType后没有对象 ,因为实现这个接口的类型可能很多,你说我返回哪个类型呢
------解决方案--------------------也就是说不能通过一个接口来获得其type,   
 而可以通过一个类或者一个对象才可以   
 接口只是标准,不是具体的类型
------解决方案--------------------比如你可以这样把IDESCoder当参数传递近来,可以有客户端调用 
 public void XXX(IDESCoder ides) 
 { 
    IDESCoder a  = ides; 
 } 
------解决方案--------------------除非把接口的定义独立成一个dll,然后其它的两个project引用这个接口,这样就可以动态加载dll然后通过接口访问了。
------解决方案--------------------1,你要的函数是非静态的,所以一定要一个对象 
 2,你的接口实例一直没有过,外部也没有传进来过,也就是实现该接口的类从来没有一个实例化了。   
 只有接口不能转换成对象==〉接口实例可以转化成实现了该接口的类的对象。   
 我想应该明白了
------解决方案--------------------反射得到的对象也只能用反射的方法来调用
------解决方案--------------------string filepath =  "EncryptService.dll "; 
       Assembly myDllAssembly = Assembly.LoadFrom(filepath); 
       Type dllType = myDllAssembly.GetType( "IDESCoder ");   <--------- 
       if (dllType!=null) 
       { 
         object obj = Activator.CreateInstance(dllType);   <-------- 
         MethodInfo mi=dllType.GetMethod( "Method "); 
         object[] paramArray={}; 
         mi.Invoke(obj, paramArray); 
       } 
------解决方案--------------------那就 GetTypes() 再用 FindInterfaces 找出实现类