0

このコードとの取引が何であるかを理解できません。"command" =Parkであり、Park メソッドがインターフェイスに存在します。ただし、「メソッド」はnullに等しいだけなので、呼び出しを押すと例外がスローされます。デバッガーが起動し、すべてが正常に見えることを確認できました。メソッドが設定されないのはなぜですか?

スコープ オブジェクトが定義されます。コムオブジェクトです。スコープ オブジェクトの動的ビューを拡大すると、プロパティか何か (青い 3D ボックスで、手と紙ではありません) だけが表示され、メソッドは表示されません。それが問題ですか?しかし、なぜ、私は ITelescope を参照していて、設定されていないメソッドを呼び出そうとするまでスコープで何もしないからです。

この質問からアクティベーター コードを取得しました。

ITelescope scope = (ITelescope)Activator.CreateInstance(Type.GetTypeFromProgID(scopeProgID));
var method = typeof(ITelescope).GetMethod(command);
method.Invoke( scope, new object[0]{ } );
4

1 に答える 1

0

インターフェイスとリフレクションについて別の質問をしたことを思い出しました。この問題は相互運用タイプに関係しています。これを修正するには、プロジェクトの参照リストで問題のある参照を右クリックし、プロパティをクリックして、「embed interop types」を false に設定します。

于 2012-10-06T16:17:30.983 に答える