首页 > 其他分享 >WebApi Autofac依赖注入配置

WebApi Autofac依赖注入配置

时间:2022-12-15 17:55:09浏览次数:58  
标签:WebApi Autofac 依赖 container IContainer builder static public

 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);
            }
        }
    }

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

标签:WebApi,Autofac,依赖,container,IContainer,builder,static,public
From: https://www.cnblogs.com/5tomorrow/p/16985721.html

相关文章

  • [无依赖发布webview2程序] 固定版本运行时环境的方式来实现加载网页
    下载固定版本,解压到例如c:\wb2目录https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/#download-section这里翻译有问题,其实是固定版本(Fixed),194MB......
  • 创建一个WebApi项目
    原文链接:https://www.bilibili.com/video/BV12L4y1b7ND/?spm_id_from=333.337.search-card.all.click&vd_source=23aa9dcacf4c7ddaed4172b5ffd451ab创建一个WebApi大致分......
  • ASP.NET Core 奇淫技巧之动态WebApi
    一.前言接触到动态WebApi(DynamicWebAPI)这个词的已有几年,是从ABP框架里面接触到的,当时便对ABP的这个技术很好奇,后面分析了一波,也尝试过从ABP剥离一个出来作为独立组件来使......
  • 通过服务网格减少对API网关依赖
    微服务和微服务之间有调用关系,所有调用关系都经过API网关,最终的调用链如图1所示。基于API网关的数据转发如图1所示,展示了4个微服务之间的3次调用,可以看出任何服务到服务之......
  • python扩展包依赖管理
    日常开发中我们会用piplist查看安装了哪些包,直接以列表的形式展示给你,但是你知道某个包依赖于其它哪些包吗?或者你想删除一个包,它对应的依赖包会被同步删除吗?如果你有这些......
  • 云函数添加外部依赖
    以华为云函数为例,使用python添加依赖需要先知道项目的层级结构Python项目结构:|---Project|---index.py比如该项目需要用到requests依赖,但云函数默认环境......
  • 使用 WebAPI获取实体的复数名称
    Xrm.Utility.getEntityMetadata("opportunity","").then(function(result){console.log("当前实体的复数名称:"+result.EntitySetName);},functio......
  • webapi excel导入
     效果图  引入命名空间:usingNPOI;usingNPOI.HSSF.UserModel;usingNPOI.SS.UserModel;usingNPOI.XSSF;usingNPOI.XSSF.UserModel;usingXiaowu_Ship.Model;//......
  • 手动创建Maven项目并建立两个项目之间的依赖关系
    用命令行快速建立maven项目->mvn:archetype:generate->直接回车或者自己输入你想生成的->groupId->artifactId->如果有默认值回车即可最后y确认创建我们看下他的目录结......
  • Vue3.0文档学习心得--依赖注入
    1.provide():在祖先组件或整个应用(通过 app.provide()) 提供一个值,可以被后代组件注入。(1)第一个参数是要注入的key,可以是一个字符串或者一个symbol,第二个参数是要......