.net 4.0 C#MEF集合属性/属性注入

.net 4.0 C#MEF集合属性/属性注入,.net-4.0,mef,.net 4.0,Mef,有没有办法让它使用Microsoft可扩展性框架(MEF)工作 假设我有接口 public interface IApplicationSettings { string SettingOne { get; } } 实现此接口的类 [Export(typeof(IApplicationSettings))] public class ApplicationSettings : IApplicationSettings { public string SettingOne {

有没有办法让它使用Microsoft可扩展性框架(MEF)工作

假设我有接口

public interface IApplicationSettings
{
   string SettingOne { get; }
}
实现此接口的类

[Export(typeof(IApplicationSettings))]
public class ApplicationSettings : IApplicationSettings
{ 
   public string SettingOne
   {
       get
       {
           return "AAA";
       }        
    }
}
类,该类将我的接口作为属性包含

public class IoCConstructorMef
{
    [Import("ApplicationSettings", typeof(IApplicationSettings))]
    public IApplicationSettings ApplicationSettings { get; set; }
}
那么我希望我的财产将被注入这里:

 static void Main(string[] args)
 {
     IoCConstructorMef cm = new IoCConstructorMef();
     //cm.ApplicationSettings - is null

 }
看起来在这种情况下没有注射


我是错过了什么还是做错了什么?

你必须让MEF构建你的IOC架构或cm。否则导入将不会发生。

您必须让
CompositionContainer
为您创建一个对象,以满足其导入。将
ExportAttribute
添加到
IOCConstructuref
,创建一个容器,然后调用
container.GetExportedValue()