2013-01-09 56 views
0

是否有任何方法使用lambda表达式而不是硬编码字符串来定义属性的名称来创建ConstructorArgument的实例?带lambda表达式的NInject构造函数参数

事情是这样的:

var validator = Ioc.Kernel.Get<Validators.Security.UserGroupValidator>(new ConstructorArgument(x => x.ValidationDictionary, new ValidationDictionary()) 

在我的情况下,ValidationDictionary但在许多地方,由于这个原因一样,我不能使用的供应商。

回答

1

可以使用ToConstructor像

http://www.planetgeek.ch/2011/05/28/ninject-constructor-selection-preview/

Bind<UsergroupValidator>().ToConstructor(_ => new Usergroupvalidator(new ValidationDictionary()); 

甚至让在博客帖子中定义的验证字典注入约束力。

+0

就像我说过的,这正是我无法做到的,因为ValidationDictionary的实例在我使用验证器的每个地方都不相同。 – Samuel