【问题标题】:Inject into attribute?注入属性?
【发布时间】:2010-12-27 17:19:16
【问题描述】:

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

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

如何让 Turbine 注入 ILoggerService?

【问题讨论】:

    标签: c# dependency-injection attributes turbine


    【解决方案1】:

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

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

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

    【讨论】:

    • 要添加到这个正确答案,您必须考虑为什么会这样。属性嵌入在程序集中的元数据中并应用于类型,而不是类型的实例。如果属性参数不是常量,则不可能是这种情况。
    【解决方案2】:

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

    要了解这是如何完成的,请查看 Turbine 随附的 Filter Injection sample。

    【讨论】:

    • 不错 :) 正是我想要的
    猜你喜欢
    • 1970-01-01
    • 2011-12-01
    • 2017-05-28
    • 2023-03-21
    • 1970-01-01
    • 2012-04-23
    • 2017-01-26
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多