2011-01-04 6 views
2

私は学ぶようになっています。MEFとその中の重要なことは、エクスポート属性を使ってアイテム(クラス、特性、メソッド)をマークできるということです。それ。このマッピングはどのように行われ、いつ行われますか?需要に応じて怠惰に輸入が行われるのか、スタートアップ時にすべての組成が起こるのか?無知な質問を申し訳ありませんが、私は流れを理解しようとしています。MEFの実行時にインポートとエクスポートはどのように機能しますか?

答えて

3

"Composition"というフェーズで発生します。最初にコンテナを作成し、可能なすべてのソースをそこにロードしてから、Composeをロードします。コンポジションを実行すると、すべての依存関係が解決され、すべてを適切に解決できない場合は例外がスローされます。

一般に、コンポーネントは合成中にインスタンス化されます(そして、パーツクラスのコンストラクタにブレークポイントを設定すると、Compose()への呼び出し中にブレークポイントがヒットします)。ただし、Lazy<T>をインポートのタイプとして使用すると、(部品をタイプTとしてエクスポートしたと仮定すると)これを簡単にオーバーライドすることができます。

構成の仕組みを確認するには、Compose()の方法hereをご覧ください。

関連する問題