質問

.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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top