私は、1 つのプロパティを持つインターフェイスである 1 つのクラスが呼び出されたクラス ライブラリを持っていIConfiguration
ます。
which implements と呼ばれるクラス ライブラリと、TexasConfiguration
which implementsIConfiguration
と呼ばれる別のクラス ライブラリがFloridaConfiguration
ありますIConfiguration
。
と飾ってTexasConfiguration
ありますFloridaConfiguration
[Export(typeof(IConfiguration)]
と呼ばれるシールされたクラスである別のクラスがありConfigurationSystem
、それには次のように定義されたプライベートコンストラクターが含まれていますprivate ConfigurationSystem() {}
私が抱えている問題はほとんどありません。一般的に言えば、MEF をセットアップするにはどこに配置すればよいでしょうか。ConfigurationSystem
現在、次の宣言とともに静的メソッドを入れています。
[Import(typeof(IConfiguration)]
IConfiguration configuration {get; set;}
上記では、configuration
未使用であることがわかります。この場合、これは正常ですか。
で静的メソッドも作成しましたが、静的にすると、ConfigurationSystem
渡すことができず、渡す必要があります。this
typeof(ConfigurationSystem)
public static void SetupConfiguration()
{
using (DirectoryCatalog catalog = new DirectoryCatalog(@"c:\\developement\source\configuration"))
{
CompositionContainer container = new CompositionContainer(catalog);
container.ComposeParts(typeof(ConfigurationSystem));
}
}
私は次のようなことができるようにしたい:
ConfigurationSystem.SetupConfiguration();
メソッドが静的であると宣言されていない限り、これを行うことはできません。簡単に言えば、アプリケーションが開始さInitialize
れると、my を呼び出してSetupConfiguration
適切な構成オブジェクトを に割り当てる静的メソッドが呼び出されIConfiguration
ます。