我要做的是将一个组件注入我的MVC应用程序并从控制器中使用它。
目前我并没有尝试将MEF用于实际控制器,但我想导入组件,例如MVC应用程序中的loggin组件。
最好的地方在哪里?
目前我直接在控制器中输入了我的compose部件代码和ILogger属性,但我觉得这不是最好的方法。好像我只需要在应用程序中调用Compose一次。 那么它应该在我编写的全局asax文件中吗? 如果是这样,我如何从我的控制器获取ILogger的句柄?我应该有一个“基础”控制器,我将ILogger注入构造函数并从中继承每个标准控制器吗?
希望这是有道理的 - 我只是在我的代码结构上苦苦挣扎。
THX
答案 0 :(得分:0)
我使用Log4Net并将记录器注入每个控制器。当你使用注射时我不认为它是一个很大的打击。看看Ninject吧。它同时具有MVC实现和日志记录模块。模块在全局中加载一次,然后注入控制器。基本的DI,但你真的需要更多吗?如果您创建了一个基本控制器,您仍然需要在每个可以注入的控制器中创建一个ctor。
您可以使用日志记录创建基本控制器,然后使用属性注入。我从来没有这样做过,但如果所有控制器使用相同的基础,它应该可以正常工作。