注入属性?

时间:2009-12-17 15:56:03

标签: c# dependency-injection attributes turbine

我的asp.net-mvc项目有[Logger]属性。 此LoggerAttribute在其构造函数中采用ILoggerService。

对于常规对象(例如我的控制器),它可以正常工作,但似乎没有解析属性。

如何让Turbine注入ILoggerService?

2 个答案:

答案 0 :(得分:3)

属性参数必须是常量表达式,因此您无法实例化要赋予属性的对象。

http://msdn.microsoft.com/en-us/library/5y0xyec6.aspx

我要做的是要求您的控制器在其构造函数中接受ILoggerServer,并将Turbine注入控制器的构造函数。

答案 1 :(得分:2)

您的Logger属性是Action | Result | Error | Authorization过滤器吗?如果是这样,您可以使用InjectableFilterAttribute类来指定您希望Turbine为您注入的过滤器类型。通过这种方式,您可以支持ctor注入您的服务。

要了解如何完成此操作,请查看Turbine随附的Filter Injection sample