[技巧.Dotnet]反射呼叫COM元件的方法、引數為ref型別
阿新 • • 發佈:2019-02-20
string strSource; //從儀器接收到的原始資料 string strResult = ""; //檢驗結果字串 string strReserved = ""; //本次未解析完的資料 string strCmd = ""; //應答指令 strSource = "xxxx"; //獲取COM型別 Type type = Type.GetTypeFromProgID("zlLISDev.clsLISDev_ABL800"); //建立COM型別示例 object instance = Activator.CreateInstance(type); //引數構造 //注意:需要通過ParameterModifier顯示指定哪些引數是引用型別 object[] args = new object[] { strSource, strResult, strReserved, strCmd }; ParameterModifier argsMod = new ParameterModifier(4); argsMod[1] = true; argsMod[2] = true; argsMod[3] = true; ParameterModifier[] mods = { argsMod }; //反射呼叫方法 type.InvokeMember( "Analyse", BindingFlags.InvokeMethod, null, instance, args, mods, null, null);
regsvr32 zlLISDev.dll
TlbImp.exe zlLISDev.dll /namespace:zlLISDev /out:Interop.zlLISDev.dll