gpt4 book ai didi

model-view-controller - 将 MEF 插件导入 MVC Controller

转载 作者:行者123 更新时间:2023-12-04 06:53:05 28 4
gpt4 key购买 nike

有几个使用 MEF 将整个 Controller / View 包插入 MVC 应用程序的示例,但我没有找到使用 MEF 插入其他 Controller 使用的功能部件的示例。

例如,考虑一个具有简单接口(interface)的 NewsService,例如

interface INewsService
{
List<NewsItem> GetAllNews();
}

这可以在任何他想要的地方获取新闻,并在 NewsItems 列表中返回它们。我的页面应该加载一个导出的 INewsService 并在页面上显示新闻。

但是有问题。我不能只在 Controller 中使用 [Import],因为它们只是在需要时创建的。

编辑:(将它们导入主 MVCApplication 类不起作用,因为我无法从 Controller 访问它。)
我想我找到了一种通过 HttpContext.ApplicationInstance 访问主应用程序的方法。但是这个实例中的 Service 对象是空的,虽然它是在 Application_Start() 方法中成功创建的。知道为什么吗?

那么,如何从 Controller 中访问 NewsService?

提前致谢,
分数

最佳答案

您需要创建一个 MEF ControllerFactory,它将使用 MEF CompositionContainer 创建一个满足其导入的 Controller 。然后你可以在你的 Controller 上放一个 INewsService 导入。

这是 sample这显示了您如何做到这一点。

编辑:这是另一个 sample这看起来有点简单。

关于model-view-controller - 将 MEF 插件导入 MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2849479/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com