2010-10-22 48 views
1

我有一个支持可视化插件/提供程序的ASP.NET MVC2应用程序。 IVisualization接口在ASP.NET MVC2应用程序和任何可视化提供程序都引用的常见程序集中定义。使用MEF在控制器中导入值集合的最佳方法

在可视化控制器中,我有一个方法可以返回给定数据集的所有适用可视化。为了扫描可用的提供者,我在控制器的ActionMethod中使用以下代码。

var catalog = new DirectoryCatalog(HttpRuntime.BinDirectory); 
var container = new CompositionContainer(catalog); 
var visualizations = container.GetExportedValues<IVisualization>(); 

不过,我觉得,如果我有在控制器

[ImportMany] 
public IEnumerable<IVisualization> Visualizations { get; set; } 

以下,则进口应该自动发生。我错过了什么防止自动导入?

此外,我目前使用的代码将杀死网站的缩放吗?

感谢, 埃里克

回答

0

如果你有一个控制器声明特定属性导入,则必须编程调用MEF的方法之一,以满足他们。

某些选项:

container.GetExportedValues<MyController(); 
container.ComposeParts(controllerInstance); 

等等。

我希望这可以说明我的观点。

+0

确实,谢谢。我正在看的例子错过了。谢谢! – 2010-10-24 18:17:00

相关问题