1

私のXPCOMコンポーネントの1つは、他のXPCOMコンポーネントを利用しています。私がそれをテストしていたとき、私はそれが依存関係の厄介なcosであることに気づきました。次に、依存性注入を使用して、コンストラクター内の他のコンポーネントを渡すことを考えました。私は成功しませんでした。他のコンポーネントの参照をコンストラクターに渡すことは可能ですか?

 var _foo = Components.classes["@foo.com/foo;1"].createInstance(bar);
 this.foo = _foo.QueryInterface(Components.interfaces.IFoo);

たとえば、fooコンポーネントにはbarが必要です。fooのコンストラクターを介してbarを渡すことはできますか?上記を試しましたが、うまくいきませんでした。

ザン

4

1 に答える 1

1

他のコンポーネントの参照をコンストラクターに渡すことは可能ですか?

いいえ。パラメーター tocreateInstanceはインターフェイスです。.createInstance(interface)のショートカットです.createInstance().QueryInterface(interface)

あなたの問題への答えは、質問で説明しなかった領域にあります-「コンストラクター」から他のコンポーネントにアクセスする必要がないか、修正できる問題に遭遇した可能性が最も高いですが、代わりに「面倒なcos依存関係の」そして次に進みました。

于 2009-10-16T07:03:50.083 に答える