【问题标题】:Avoid the magic string when injecting a constructor argument from an attribute using Ninject's BindFilter method?使用 Ninject 的 BindFilter 方法从属性注入构造函数参数时避免使用魔法字符串?
【发布时间】:2011-12-25 19:22:42
【问题描述】:

我的 Ninject 模块中有以下代码:

this.BindFilter<PermitFilter>(FilterScope.Controller, 0)
    .WhenControllerHas<PermitAttribute>()
    .WithConstructorArgumentFromControllerAttribute<PermitAttribute>(
        "permissions",
         attribute => attribute.Permissions);

Ninject 是否提供任何替代方法来使用字符串作为构造函数参数的名称?例如,我宁愿在构造函数上放置一个Permissions 属性并在绑定语句中引用它(与Ninject 的常规绑定机制一样)。这样的事情是否可能(或正在为下一个版本工作)?

【问题讨论】:

    标签: c# asp.net-mvc ninject action-filter


    【解决方案1】:

    在下一个版本中,您可以像这样指定它:

    this.BindFilter(
        x => new PermitFilter(
            x.Inject<ISomeDependency>(),
            x.FromControllerAttribute<PermitAttribute>().GetValue(attribute => attribute.Permissions)), 
            FilterScope.Controller, 
            0)
        .WhenActionMethodHas<PermitAttribute>();
    

    【讨论】:

    • 太棒了,等不及下一个版本了。
    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多