"Autofac은 컨테이너에서 얻을 수있는 대부분의 매개 변수를 사용하여 생성자를 자동으로 선택합니다." 그렇지 않으면 기본 생성자를 대신 선택해야합니다.매개 변수없는 자동 생성자 선택
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
}
I 클래스를 연결 http://code.google.com/p/autofac/wiki/Autowiring, 내가 이런 짓을 :
(가) 먼저 constructorBindings 목록에 바인딩 항상 paremeterless 생성자와 하나builder.RegisterType<EmployeeFactory>()
.As<IEmployeeFactory>().UsingConstructor(new ParameterlessConstructorSelector())
.SingleInstance();
. 처음에 정의했는지 또는 autofac이 생성자를 검사하는 방법인지는 모르지만 이것이 매개 변수없는 생성자에 대한 올바른 접근 방법입니까?
감사
는
처음에는 행운이었습니다.() :) 자세한 설명을 읽어 주셔서 감사합니다. –
'InvalidOperationException' 대신 Autofac에 매개 변수없는 ctor가없는 경우에 더 적합한'DependencyResolutionException' 클래스가 추가되었습니다. – aholmes