有幾個使用MEF將整個控制器/視圖包插入到MVC應用程序的例子,但是我沒有找到一個使用MEF插入其他控制器使用的功能部件的例子。將MEF插件導入MVC控制器
例如,認爲NewsService的一個簡單的界面像
interface INewsService
{
List<NewsItem> GetAllNews();
}
那得到消息的地方,他希望,在NewsItems的列表返回他們。我的頁面應該加載導出的INewsService並在頁面上顯示新聞。
但存在這個問題。我不能在控制器中使用[導入],因爲它們只是在需要時才創建。
編輯:(它們導入到主MVCApplication類不起作用,becouse我不能從控制器訪問) 我想我找到了一種方法通過HttpContext.ApplicationInstance訪問主要的應用程序。但是在這個實例中的Service對象是null,儘管它在Application_Start()方法中被成功創建。任何想法爲什麼?
那麼,如何從控制器中訪問NewsService?
由於提前, 商標
我不喜歡添加自定義ControllerFactory的方式,但它似乎是目前唯一的良好解決方案。 – Marks 2010-05-17 14:53:51