我有一个类库,其中一个名为的类IConfiguration
是一个只有一个属性的接口。
我有一个名为 which implements 的类库TexasConfiguration
和IConfiguration
另一个名为FloridaConfiguration
which implements的类库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
,我想在其中调用 mySetupConfiguration
并将适当的配置对象分配给IConfiguration
.