【发布时间】:2010-12-27 17:19:16
【问题描述】:
我的 asp.net-mvc 项目有一个 [Logger] 属性。 此 LoggerAttribute 在其构造函数中采用 ILoggerService。
对于常规对象(例如我的控制器),它可以工作,但似乎无法解析属性。
如何让 Turbine 注入 ILoggerService?
【问题讨论】:
标签: c# dependency-injection attributes turbine
我的 asp.net-mvc 项目有一个 [Logger] 属性。 此 LoggerAttribute 在其构造函数中采用 ILoggerService。
对于常规对象(例如我的控制器),它可以工作,但似乎无法解析属性。
如何让 Turbine 注入 ILoggerService?
【问题讨论】:
标签: c# dependency-injection attributes turbine
属性参数必须是常量表达式,因此您不能实例化要赋予属性的对象。
http://msdn.microsoft.com/en-us/library/5y0xyec6.aspx
我要做的是要求您的控制器在其构造函数中接受 ILoggerServer 并将 Turbine 注入控制器的构造函数。
【讨论】:
您的 Logger 属性是 Action|Result|Error|Authorization 过滤器吗?如果是这样,您可以使用 InjectableFilterAttribute 类来指定您希望 Turbine 为您注入的过滤器的类型。这样您就可以支持向您的服务注入 ctor。
要了解这是如何完成的,请查看 Turbine 随附的 Filter Injection sample。
【讨论】: