我有一个类库,其中一个名为的类IConfiguration是一个只有一个属性的接口。
我有一个名为 which implements 的类库TexasConfiguration和IConfiguration另一个名为FloridaConfigurationwhich 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.