VS2012下使用MEF和Lazy<T,TMetadata>

Eri*_*ric 5 mef composition c#-4.0 visual-studio-2012

我正在取一些我在 VS2010 中编写的 MEF 代码,并在 VS2012 中再次编写它。不幸的是,我卡在了这个简单的界面上:

  public interface IModulesContainer
  {
    [ImportMany]
    IEnumerable<Lazy<IModule, IModuleMetadata>> Container { get; }
  }
Run Code Online (Sandbox Code Playgroud)

VS2012 在这方面有一个编译错误:

Error   Using the generic type 'System.Lazy<T>' requires 1 type arguments
Run Code Online (Sandbox Code Playgroud)

我知道有两个 System.Lazy<> 泛型类,一个采用一种参数类型,另一个采用两种(第二个是元数据)。

我不知道如何让 VS2012 识别后一类。(两者都在 System 命名空间下)

VS2010 看到它就好了。我错过了什么?

提前致谢,--埃里克