私は、1 つのプロパティを持つインターフェイスである 1 つのクラスが呼び出されたクラス ライブラリを持っていIConfigurationます。
which implements と呼ばれるクラス ライブラリと、TexasConfigurationwhich implementsIConfigurationと呼ばれる別のクラス ライブラリがFloridaConfigurationありますIConfiguration。
と飾ってTexasConfigurationありますFloridaConfiguration[Export(typeof(IConfiguration)]
と呼ばれるシールされたクラスである別のクラスがありConfigurationSystem、それには次のように定義されたプライベートコンストラクターが含まれていますprivate ConfigurationSystem() {}
私が抱えている問題はほとんどありません。一般的に言えば、MEF をセットアップするにはどこに配置すればよいでしょうか。ConfigurationSystem現在、次の宣言とともに静的メソッドを入れています。
[Import(typeof(IConfiguration)]
IConfiguration configuration {get; set;}
上記では、configuration未使用であることがわかります。この場合、これは正常ですか。
で静的メソッドも作成しましたが、静的にすると、ConfigurationSystem渡すことができず、渡す必要があります。thistypeof(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ます。