工具方法类DependencyInjection

public class DependencyInjection
    {
        public static DependencyInjection Instance { get; private set; }

        static DependencyInjection()
        {
            Instance = new DependencyInjection();
        }

        public IServiceProvider Register(IServiceCollection services)
        {
            var builder = new ContainerBuilder();

            builder.AddServiceModule();
           
            if (services != null)
                builder.Populate(services);

            IContainer _container = builder.Build();

            return new AutofacServiceProvider(_container);
        }

        public IServiceProvider Register(IServiceCollection services, Action<ContainerBuilder> actionBefore)
        {
            var builder = new ContainerBuilder();
            actionBefore?.Invoke(builder);
            if (services != null)
                builder.Populate(services);
            IContainer _container = builder.Build();
            return new AutofacServiceProvider(_container);
        }

        public IContainer Configure()
        {
            ContainerBuilder containerBuilder = new ContainerBuilder();
            containerBuilder.AddServiceModule();
            return containerBuilder.Build();
        }
         
    }

 

posted @ 2022-11-23 09:16  BloggerSb  阅读(25)  评论(0)    收藏  举报