.NETを介してCOMオブジェクトを手動で呼び出す方法
-
06-07-2019 - |
質問
.NETのGACで、参照として追加せずにCOMオブジェクトを手動で呼び出す方法はありますか?
私が尋ねる理由は、C#でコーディングする方法を知っているだけで、.NET COMオブジェクトを呼び出して、そのCMO呼び出しが表示されることをテストすることですが、明らかに.NET COMオブジェクトを.NETに追加することはできませんアセンブリ!あなたがそれを参照しなければならないので、c#コードを介してGACに手動で登録されている場合、それを呼び出すことができますか?
解決
Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
object obj = Activator.CreateInstance(myType);
object[] args = new object[2];
args[0] = "Hello";
args[1] = 3;
myType.InvokeMember("MyMethod", BindingFlags.InvokeMethod, obj, args);
.Net 4では次のようになります
Type myType = Type.GetTypeFromProgID("IMyLib.MyClass");
dynamic obj = Activator.CreateInstance(myType);
obj.MyMethod("Hello", 3);
所属していません StackOverflow