gpt4 book ai didi

Autofac无参数构造函数选择

转载 作者:行者123 更新时间:2023-12-04 03:58:58 25 4
gpt4 key购买 nike

“Autofac 会自动选择能够从容器中获取的参数最多的构造函数。”我希望它不这样做,而是选择默认构造函数。 http://code.google.com/p/autofac/wiki/Autowiring

internal class ParameterlessConstructorSelector : IConstructorSelector
{
#region Implementation of IConstructorSelector

/// <summary>
/// Selects the best constructor from the available constructors.
/// </summary>
/// <param name="constructorBindings">Available constructors.</param>
/// <returns>
/// The best constructor.
/// </returns>
public ConstructorParameterBinding SelectConstructorBinding(ConstructorParameterBinding[] constructorBindings)
{
return constructorBindings.First();
}

#endregion
}

当我连接类(class)时,我这样做了:
builder.RegisterType<EmployeeFactory>()
.As<IEmployeeFactory>().UsingConstructor(new ParameterlessConstructorSelector())
.SingleInstance();

constructorBindings 列表中的第一个绑定(bind)始终是具有无参数构造函数的绑定(bind)。不确定它是先定义还是 autofac 扫描构造函数的方式,但这是为无参数构造函数连接的正确方法吗?

谢谢

最佳答案

显式注册默认构造函数不是更简单吗?

builder.Register<EmployeeFactory>(c => new EmployeeFactory())
.As<IEmployeeFactory>()
.SingleInstance();

关于Autofac无参数构造函数选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13988285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com