2011-12-25 53 views
1

我在我的Ninject模塊下面的代碼:使用Ninject的BindFilter方法從屬性注入構造函數參數時避免使用魔法字符串?

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

是否Ninject提供任何替代品使用字符串構造函數參數的名字嗎?例如,我寧願在構造函數中添加Permissions屬性,並在綁定語句中引用它(與Ninject的常規綁定機制一樣)。是否有這樣的可能(或在下一版本的作品中)?

回答

3

隨着未來版本中,您可以指定有關像這樣:

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

優秀的,不能等待下一個版本。 – devuxer 2011-12-26 23:33:26

相關問題