2010-11-29 27 views
2

我想要做的是注入一个组件到我的MVC应用程序,并从控制器中使用它。MEF和MVC - 请多指点:)

目前我不想为实际的控制器使用MEF,但我想导入组件,例如MVC应用程序中的一个登录组件。

最好的地方在哪里?

目前我有,直接在控制器,把我的组成部分代码和ILogger属性,但我觉得这不是最好的方式。似乎我应该只需要在应用程序中调用一次Compose。 那么我应该在全球的asax文件中编写这个文件吗? 如果是这样,我如何从我的控制器获得ILogger的句柄?我应该有一个“基础”控制器,我将ILogger注入构造函数并继承每个标准控制器?

希望是有道理的 - 我只是与我的代码结构挣扎了一下。

THX

+0

http://www.fidelitydesign.net/?p=259此博客文章可能会帮助你。这完全是关于MVC3和MEF。 – Buildstarted 2010-11-29 18:23:10

+0

谢谢...确实,非常有帮助。 – SteveCl 2010-11-30 09:10:36

回答

0

我使用log4net的和注入的记录器到每个控制器中。当你使用注射时,我不认为它是一个大的打击。看看Ninject。它有一个MVC实现和一个日志记录模块。模块在全局加载一次,然后注入控制器。基本直接投资,但你真的需要更多?如果你创建一个基础控制器,你仍然需要在每个可以注入的控制器中创建一个控制器。

您可以创建一个带日志记录的基本控制器,然后使用属性注入。我从来没有这样做过,但是如果所有控制器都使用相同的底座,它应该可以正常工作。