我不是太熟悉,实施lambda表达式和表情,但我已经习惯了这种语法MVC多次在拉姆达识别对象上的属性:如何使用lambda指定构造函数参数?
Html.Label(model => model.Foo)
在我的应用我使用Ninject有条件的绑定来提供Settings
类的实例,当我请求一个Class
的实例时,这个实例被注入。我Class
看起来是这样的:
public class Class
{
private readonly Settings settings;
public Settings Settings { get { return settings; } }
public Class(Settings settings)
{
this.settings = settings;
}
}
我有一些代码,看起来像这样得到的Class
一个实例。我知道这是service locator anti pattern,但我们在这种情况下,没有选择,因为其他方面的限制:
var settings = new Settings();
var instance = Ioc.Instance.Get<Class>("settings", settings);
我想重构它看起来像这一点,以便它是强类型,使用Lambda指定我提供的构造函数的参数:
var settings = new Settings();
var instance = Ioc.Instance.Get<Class>(x => x.settings, settings);
所以,这是可能的,代码是什么样子?
这是否构造函数?在我的测试中,我只能看到课堂上的属性? – 2014-10-10 09:36:42