2010-10-22 50 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

相關問題