1.比如说a.dll引用b.dll,并且a.dll中的方法c()调用了b.dll中的方法d(),使用反射的方法调用c()的时候会出错,请问这个如何解决
2.关于用反射测试dll大家有什么好的意见或是建议,谢谢

解决方案 »

  1.   

    System.Reflection.Assembly dll = System.Reflection.Assembly.LoadFile("文件路径"); 
    Stream xmls = dll.GetManifestResourceStream("a.dll的命名空间.项目中的文件路径.文件名"); 
      

  2.   

    首先说声谢谢了,你的这个方法好像是调用dll中的资源文件 能达到像引用命名空间一样的的效果吗(using b.dll)?
      

  3.   

    提示的问题是Exception has been thrown by the target of an invocation,就是调用的地方的内部出现错误,其他的也没有提示是什么错误,因为我调用的dll里的方法有调用的其他的dll的方法
      

  4.   

    如果把b.dll文件也加载,不知道会不会OK。
      
      

  5.   

    1: 很好的思想
    2: 反射去调用就可以, GetAssembly->MethodInfo_>InvokerMember...
       有问题那检查代码!
      

  6.   


                        GCardBase obj = null;
                        object[] objs = new object[1];
                        objs[0] = SPContext.Current.Web;
                        Assembly myAssembly = Assembly.Load("GREATA.Business");
                        Type[] types = myAssembly.GetTypes();
                        foreach (Type type in types)
                        {
                            if (type.IsClass && type.Name == this.par.BusinessClassName)
                            {
                                obj = System.Activator.CreateInstance(type, objs) as GCardBase;
                                break;
                            }
                        }                    if (obj != null)
                        {
                            MethodInfo mi = obj.GetType().GetMethod(this.par.MethodName);
                         }
                       object returnObj = mi.Invoke(obj, this.par.Parameters);