Assembly ab=Assembly.LoadFile(DllFilePath);Type type=ass.GetType(“ClassName”);
Object obj = Activator.CreateInstance(type,params[]);MethodInfo mi=type.GetMethod(“Mehtod Name”);
mi.Invoke(obj,params[]);
各位朋友,我用上面的代码动态加载一个dll,干脆叫dll_A吧,可以成功加载,但是当调用dll里的Class的一个方法时,由于这个方法又引用了其它几个dll(在我当前的project并没有引用到)的一些信息,就称呼这些dll为dll_others吧,在程序运行时,程序总是提示“不能正确加载dll_A引用的dll_Others”(大致意思是这样).我检查过了,dllOthers的也确实存在于磁盘上,路径也没什么问题。
我不知道在加载了dll_A后,程序时如何去加载dll_Others的。希望大家给点建议。

解决方案 »

  1.   

    试试Assembly ab=Assembly.Load("这里写命名空间");
      

  2.   

    Assembly.LoadFile只载入相应的dll文件。 
    Assembly.LoadFrom会载入dll文件及其引用的其他dll。
    Assembly assem =Assembly.LoadFile("文件存的路径信息");
    Type type = assem.GetType("命名空间.类名"); 
      if (type==null)
                    
      

  3.   

    我感觉这样的问题基本上是不存在的,
    Assembly ab=Assembly.LoadFile(DllFilePath);
    .net会自动去查找该DLL文件所相关的所有文件.并全部加载到该程序域中.
      

  4.   

    报歉,我刚才说错了,查了一下MSDN, LoadFile这个方法,必须要加上第二个参数Evidence,即:
    path
    类型:System..::.String
    程序集文件的路径。securityEvidence
    类型:System.Security.Policy..::.Evidence
    用于加载程序集的证据。
      

  5.   

    应该是loadFrom吧,LoadFrom我也用过了,同样的错误
      

  6.   

    应该是loadFrom吧,LoadFrom我也用过了,同样的错误
    格式不对...