当前位置:编程学习 > C#/ASP.NET >>

托管方式动态调用DLL,DLL的返回值是俩维的数组,可是Object是一维的咋办?

如题

部分代码
string[,] Value;
Value=(string[,])Invoke("pit.dll", "pit.dll", "pd", "pt", new object[]{"12","23","34","45"});
Messagebox.Show(Value[0,0]);


通过pit.dll返回的是一个二维数组  string[,] Out;

调试的时候  Messagebox.show就不执行!应该是第二行那里出问题了!

哪位大侠知道该杂么做啊? --------------------编程问答-------------------- 这个就是大家熟悉的Invoke     
  private object Invoke(string lpFileName, string Namespace, string ClassName, string lpProcName, object[] ObjArray_Parameter) 
        {
            try{ // 载入程序集 
         
                Assembly MyAssembly=Assembly.LoadFrom(lpFileName); 
                Type[] type=MyAssembly.GetTypes(); 
                foreach(Type t in type) 
                    {// 查找要调用的命名空间及类 
                    if(t.Namespace==Namespace&&t.Name==ClassName) 
                        {// 查找要调用的方法并进行调用 
                        MethodInfo m=t.GetMethod(lpProcName); 
                        if(m!=null) 
                            { 
                            object o=Activator.CreateInstance(t); 
                            return m.Invoke(o,ObjArray_Parameter); 
                            } 
                            else MessageBox.Show(" 装载出错 !"); 
                        } 
                    } 
                }//try 
            catch(System.NullReferenceException e) 
                { 
                MessageBox.Show(e.Message); 
                }//catch 
            return (object)0; 
        }// Invoke --------------------编程问答-------------------- 有人会吗?

这个该杂么变通呢?
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,