autofac не может правильно определить тип списка
Я пытаюсь разрешить список объектов, используя автофакус контейнера, и ожидаю пустой список в ответ. Тем не менее, я не могу получить пустой список взамен получения 1.
Я также пытаюсь без регистрации списка в aotufac conatiner, но получаю тот же ответ.
<pre><code>
class autofacFactory : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterGeneric(typeof(List<>)).As(typeof(IList<>));
builder.RegisterType<Response>().As<IResponse>();
builder.RegisterType<CustomDependencyResolver>().As<ICustomDependencyResolver>();
}
}
public class Response : IResponse
{
public string TransactionNo { get; set; }
public string SchemeCode { get; set; }
}
public interface IResponse
{
string TransactionNo { get; set; }
string SchemeCode { get; set; }
}
public interface ICustomDependencyResolver
{
TResolved Resolve<TResolved>();
}
internal class CustomDependencyResolver : ICustomDependencyResolver
{
private readonly ILifetimeScope _lifetimeScope;
public CustomDependencyResolver(ILifetimeScope lifetimeScope)
{
_lifetimeScope = lifetimeScope;
}
public TResolved Resolve<TResolved>()
=> _lifetimeScope.Resolve<TResolved>();
}
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterModule(new autofacFactory());
using (var container = builder.Build())
{
ICustomDependencyResolver customDependencyResolver = container.Resolve<ICustomDependencyResolver>();
var collection = customDependencyResolver.Resolve<ICollection<IResponse>>();
var list = customDependencyResolver.Resolve<IList<IResponse>>();
}
}
Actual response:
[Image1][1]
[Image2][2]
[Expected Response][3]
[1]: https://stackru.com/images/6010b2a286fc0caeefbf8ccb0521052343ec2eb8.jpg
[2]: https://stackru.com/images/c4ef13d690daa02f147de3851533364698616245.jpg
[3]: https://stackru.com/images/208894959f2c4d18085f21a68a9218ffaaccbf43.jpg
1 ответ
Попробуйте не регистрироваться IList<>
или же List<>
- Autofac имеет встроенную поддержку для этого.