WebApi Autofac依赖注入配置

news/2024/9/21 23:34:00
 public class AutofacConfig
    {
        /// <summary>
        /// IOC注册
        /// </summary>
        public static void Register()
        {
            ContainerBuilder builder = new ContainerBuilder();
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            //批量注册程序集
            var serviceDll = BuildManager.GetReferencedAssemblies().Cast<Assembly>().Where(ab => ab.GetName().Name.EndsWith("Service")).ToArray();
            builder.RegisterAssemblyTypes(serviceDll).AsImplementedInterfaces().SingleInstance();
            IContainer container = builder.Build();
            GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            //帮助类注入
            AutofacHelper.RegisterContainer(container);
        }
    }

  

    /// <summary>
    /// 依赖注入帮助类
    /// </summary>
    public class AutofacHelper
    {
        private static IContainer _container;

        ///<summary>
        ///注册DIContainer
        ///</summary>
        ///<param name="container">Autofac.IContainer</param>
        ///
        public static void RegisterContainer(IContainer container)
        {
            _container = container;
        }

        ///<summary>
        ///获取服务(Single)
        ///</summary>
        ///<typeparam name="TService">组件类型</typeparam>
        ///<returns>返回获取的组件</returns>
        ///
        public static TService Resolve<TService>()
        {
            using (ILifetimeScope scope = _container.BeginLifetimeScope())
            {
                return ResolutionExtensions.Resolve<TService>(scope);
            }
        }
    }

  复制进项目 根据提示添加引用即可


http://lihuaxi.xjx100.cn/news/407229.html

相关文章

艾美捷CpG ODN——ODN 1720 (TLRGRADE)说明书

艾美捷CpG ODN系列——ODN 1720 (TLRGRADE)&#xff1a;具有硫代磷酸酯骨架的GpC寡脱氧核苷酸。 艾美捷CpG ODN 丨ODN 1720 (TLRGRADE)化学性质&#xff1a; 序列&#xff1a;5-tccatgagcttcctgatgct-3&#xff08;小写字母表示硫代磷酸酯键&#xff09;。 MW&#xff1a;638…

vue打包优化一

webpack.dll.config.js配置 相关文章 https://www.cnblogs.com/echoyya/p/16413591.html 步骤一&#xff1a;创建webpack.dll.config.js&#xff08;不一定要是这个名字&#xff0c;只要执行指令的时候路径正确就行&#xff09; // webpack.dll.config.js const path requi…

分布式光伏发电计及气象因子及出力预测方法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

spring中i18n国际化处理多语言

前言 在项目中&#xff0c;往往用户会存在多语言的述求&#xff0c;比如说一个系统既有中文的用户&#xff0c;又有英文的用户。怎么来实现多语言呢&#xff1f; 首先前后端分离的项目&#xff0c;前端会有自己的多语言实现方案&#xff0c;大致效果就是&#xff0c;用户切换…

(四)本地镜像发布到阿里云将阿里云上的镜像下载到本地

目录 一、阿里云ECS docker生态 二、镜像生成 三、阿里云容器镜像服务 四、推送镜像到阿里云registry 五、将阿里云上的镜像拉取到本地 一、阿里云ECS docker生态 二、镜像生成 使用commit命令&#xff0c;在&#xff08;三&#xff09;深度理解Docker分层&#xff08;Uni…

24岁程序媛实现了人生第一个小目标 | 2022年终总结

前言 大家好&#xff0c;我是伊人a。2022这一年我实现了人生中的第一个小目标-25岁前能够全款拿下宝马3系。耶比耶比&#x1f389;&#x1f389;&#x1f389; 2022年我是一个满眼星辰的的攀登者。 满眼星辰指的是我对未来充满希望且笃定不移&#xff0c; 攀登者指的是我在…

Java8 新特性——日期时间

Java8之前&#xff0c;日期时间&#xff1a;java.util.Date是可变类型&#xff0c;SimpleDateFormat非线程安全 旧版的 Java 中日期时间 API 问题&#xff1a; 非线程安全 − java.util.Date 是非线程安全的&#xff0c;所有的日期类都是可变的。 设计很差 − Java的日期/时间…

SparkSQL数据源

第1关:SparkSQL加载和保存 任务描述 本关任务:编写一个SparkSQL程序,完成加载和保存数据。 相关知识 为了完成本关任务,你需要掌握: 加载数据 直接在文件上运行SQL 保存到路径 保存模式介绍 保存到持久表 存储和排序或分区 加载数据 DataFrameReader用于从外部存…