【发布时间】:2010-05-17 13:40:21
【问题描述】:
有几个使用 MEF 将整个控制器/视图包插入 MVC 应用程序的示例,但我没有找到一个使用 MEF 插入其他控制器使用的功能部件的示例。
例如,考虑一个具有简单界面的 NewsService,例如
interface INewsService
{
List<NewsItem> GetAllNews();
}
它可以在任何他想要的地方获取新闻,并在 NewsItems 列表中返回它们。我的页面应该加载一个导出的 INewsService 并在页面上显示新闻。
但是有问题。我不能只在控制器中使用 [Import],因为它们只是在需要时创建的。
编辑:(将它们导入主 MVCApplication 类不起作用,因为我无法从控制器访问它。) 我想我找到了一种通过 HttpContext.ApplicationInstance 访问主应用程序的方法。但是这个实例中的 Service 对象是空的,虽然它是在 Application_Start() 方法中成功创建的。知道为什么吗?
那么,我如何从控制器中访问 NewsService?
提前致谢, 标记
【问题讨论】:
标签: model-view-controller import service plugins mef