2011-01-30 9 views
1

私はApp1.ClassAを持っている問題に直面しています.Pro2.ClassBをインポートするには、それ自身App2.ClassCをプロパティにインポートする必要があります。 App1とApp2は2つの異なるxapですMEFでは輸出入の依存関係はどのように評価されていますか?

App1.ClassAは、初期化コードでComponentInitializer.SatisfyImports(this)を呼び出します。しかし、このような輸入を満足させるチェーンは、アセンブリ全体にカスケードしていないようです。

ClassBにComponentInitializerを指定することはできません。それ自体をエクスポートしているため(MEFはエラーをスローします)、この呼び出しを行わずにClassBのプロパティにClassCをインポートしていません。

これは予期された動作ですか、それともClassCがロードされていない他のバグがありますか?

私はこのポスト-httpを経て://forums.silverlight.net/forums/t/202811.aspxを、その差は、私は私のシナリオでXaps上で事前に

感謝を横断していていることかもしれ

答えて

2

私はComponentInitializer現在のXAPで唯一の部品を見つけるだろう、デフォルトでは私のシナリオ

にXapsを越えています。 override this default host configurationに電話するには、CompositionHost.Initializeに電話してください。

0

xap境界を越えても、解決のインポートチェーンが尊重されていました。私は、アセンブリレベルで動作するので、xap境界がxapの問題ではないと推測しています。アセンブリが利用可能である限り、依存関係チェーン内のすべてのインポートを解決します。

私がした間違いは、クラスのインスタンス化中にインポートが解決されていないことを認識していなかったためです。解決された要素はコンストラクターで使用できません。私はIPartInitialized通知のために接続し、このイベントが発生したときに対処する必要がありました。

私はこれを正しい結果としてマークしています。順位を上げるのではなく、同じ問題に直面している人を指導することです。

関連する問題