必要なものの非常に単純な例を説明しましょう。MEF を使用する VS ソリューションがあり、次の広範なプロジェクトとクラスの構造があるとします。
- サーバー (プロジェクト)
- Server.cs (
Main
アプリを起動するためのメソッドが含まれています。)
- Server.cs (
- 共有 (プロジェクト)
- \契約
- ILogger.cs
- ISettings.cs
- \契約
- 設定 (プロジェクト)
- MySettings.cs (ISettings を実装するクラス)
- ロガー (プロジェクト
- MyLogger.cs (ILogger を実装するクラス)
与えられた...
- 上記のプロジェクトはすべて Shared プロジェクトを参照しています。
- サーバーは開始アプリケーションであり、すべてのカタログをアプリケーション コンテナーに初期化します。
...アプリケーションを起動し、アプリケーション内からシングルトンMySettings
を初期化できます。ここまでは順調ですね。MyLogger
Server
ここでMyLogger
、出力ディレクトリの設定ファイルにアクセスする必要があるとします。ディレクトリの場所の値はMySettings
オブジェクトに格納され、 で初期化さServer.cs
れCompositonContainer
ます。
私は MEF を使用しているので、Settings
プロジェクト内でプロジェクトを参照する必要はありませんLogger
。代わりに、MEF を使用して、アプリケーションの開始時に初期化され、サーバー内に存在する現在のアプリケーションISettings
シングルトンを取得したいと考え ています。Server
CompositionContainer
MEF を使用MySettings
して内部からシングルトンに適切にアクセスするにはどうすればよいですか?MyLogger