2013-01-09 110 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