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 имеет встроенную поддержку для этого.

Другие вопросы по тегам