请问在C#中如何动态调用C#写的DLL? 

解决方案 »

  1.   

    反射吧,不太清楚
                    Assembly ass = Assembly.LoadFile(Application.StartupPath + "\\Request.DLL");
                    object obj = ass.CreateInstance("Request._request", false);
                    Type t = ass.GetType("Request._request");
                    getCode = t.InvokeMember("getMacheID", BindingFlags.InvokeMethod, null, obj, new object[] { }).ToString();
      

  2.   

    具体怎么反射,我dll里面有一个结构体,怎么调用它
      

  3.   

    结构体?没有用过
     Assembly asm = Assembly.LoadFrom("CSharpCGI.dll");//servlet-dll                    Type type = asm.GetType("CSharpCGI.CGI");//命名空间
                        object o;
    看看type.GetFileds();这个方法能不能取得struct.
                        o = type.GetConstructor(new Type[] { }).Invoke(new object[] { });//构造方法
                        type.GetMethod("DoGet").Invoke(o, new object[] { request, reponse });//调用方法
     
      

  4.   

    先添加引用,找到你的DLL,加载近来后,然后USING ..;
    在代码中直接用DLL的类就行老,实例化类后,直接MYCLASS.结构体;
      

  5.   

    不是有个什么 [DLLImport]吗
    我没有用过,但是好想见过这样的东西
    你搜一下,看看
      

  6.   


    反射
    Assembly ass=Assembly.LoadFile(Application.StartupPath+"\\Request.DLL");objectobj=ass.CreateInstance("Request._request",false);
                    Type t=ass.GetType("Request._request");
                    getCode=t.InvokeMember("getMacheID", BindingFlags.InvokeMethod,null, obj,newobject[] { }).ToString();你可以找找资料看看,就是先loadfile,参数是dll文件的路径,然后就可以
      

  7.   

    真悲哀,尽然没人会,网上的都是人云亦云,还是自己看看MSDN,研究研究,尽是些没用的回答