1

autofac Container を使用してオブジェクトのリストを解決しようとしていますが、応答で空のリストが返されることを期待しています。ただし、カウントを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://i.stack.imgur.com/NVXeW.jpg
          [2]: https://i.stack.imgur.com/k58QX.jpg
          [3]: https://i.stack.imgur.com/EcFyc.jpg
4

1 に答える 1