2017-04-06 10 views
1

C#でサードパーティの.exeから呼び出されたクラスライブラリ(.dll)を作成しました。 .exeは私のメソッドにCOMオブジェクトを渡して、私の.dll内のメソッドを呼び出します。いろいろな理由から、私はこのCOMオブジェクトの同等のクラス定義にアクセスすることはできませんが、この便利なメソッドDispatchUtility class toolを使用して、そのパブリックメソッドとプロパティを発見することができます。私はextern class定義を作成したいので、私はそれらのメンバーにアクセスできますが、私が発見したように、C#はそれを許可しません。COMオブジェクトからクラスへのアクセス

これらのクラスメンバーにアクセスするには、どのような方法が最適ですか?

+0

代名詞とthisesとthatsはすべて混在しており、あなたが求めているものを理解するのは難しいです。あなたがする必要があると思うのは、COMオブジェクトのIDispatchインターフェイスを取得し、そこからInvokeを呼び出すことです。この記事のHansの答えを見てください:http://stackoverflow.com/questions/8068449/calling-a-member-of-idispatch-com-interface-from-c-sharp –

+0

@JoeWillcoxson私は編集して嬉しいです明確化 - あいまいな最初のカップルは何ですか?そのQ&Aも見ていきます。 – Conrad

答えて

0

メソッド名と引数の型がわかっている場合は、dynamicを使用できます。

dynamic o = theComObject; 
o.SomeMethod(arg1, arg2, arg3); 
var v = o.SomeProperty; 
関連する問題