有几个使用MEF将整个控制器/视图包插入MVC应用程序的例子,但我没有找到一个,使用MEF来插入其他控制器使用的功能部件。
例如,考虑使用像
这样的简单界面的NewsServiceinterface INewsService
{
List<NewsItem> GetAllNews();
}
随时随地获取新闻,并将其返回到NewsItems列表中。我的页面应加载导出的INewsService并在页面上显示新闻。
但是有问题。我不能在控制器中使用[Import],因为它们只是在需要时才创建。
编辑:(将它们导入主MVCApplication类不起作用,因为我无法从控制器访问它。) 我想我找到了一种通过HttpContext.ApplicationInstance访问主应用程序的方法。但是,虽然它是在Application_Start()方法中成功创建的,但此实例中的Service对象为null。知道为什么吗?
那么,我如何从控制器中访问NewsService?
提前致谢, 标记