当前位置: 首页 > news >正文

湛江专业做网站定制网站建设

湛江专业做网站,定制网站建设,服务器系统,网站备案时间怎么查询一、背景 刚接触.net 6,记录一下在.net6上是怎么使用Autofac进行动态的依赖注入的 二、注入方式 1、新建一个webapi项目,框架选择net 6 2、引用Nuget包---Autofac.Extensions.Dependency   3、在Program.cs上添加如下代码 //依赖注入 builder.Host.Us…

一、背景

  刚接触.net 6,记录一下在.net6上是怎么使用Autofac进行动态的依赖注入的

二、注入方式

  1、新建一个webapi项目,框架选择net 6

  2、引用Nuget包---Autofac.Extensions.Dependency  

  3、在Program.cs上添加如下代码

//依赖注入
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory())//注册服务工厂
.ConfigureContainer<ContainerBuilder>(container =>
{  //添加依赖注入,AddModule是一个自定义的拓展方法,将依赖注入的方法单独提取出来,方便管理builder.Services.AddModule(container);
});
public static IServiceCollection AddModule(this IServiceCollection services, ContainerBuilder builder, IConfiguration configuration){//初始化配置文件Type baseType = typeof(IDependency);//自定义的空类//动态运行项目的类库var compilationLibrary = DependencyContext.Default.RuntimeLibraries.Where(x => !x.Serviceable&& x.Type == "project").ToList();var count1 = compilationLibrary.Count;List<Assembly> assemblyList = new List<Assembly>();foreach (var _compilation in compilationLibrary){try{assemblyList.Add(AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(_compilation.Name)));}catch (Exception ex){Console.WriteLine(_compilation.Name + ex.Message);}}//注册程序集的方式添加依赖builder.RegisterAssemblyTypes(assemblyList.ToArray()).Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract)//过滤非抽象类,继承了IDependency接口的类.AsSelf().AsImplementedInterfaces().InstancePerLifetimeScope();//实例的生命周期//单独注册依赖服务//注册数据库基础操作和工作单元builder.RegisterGeneric(typeof(BaseRepository<,>)).As(typeof(IRepository<,>));builder.RegisterGeneric(typeof(UnitWork<>)).As(typeof(IUnitWork<>));//注册app层builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly());builder.RegisterType(typeof(RedisCacheContext)).As(typeof(ICacheContext));builder.RegisterType<MemoryCacheService>().As<ICacheService>().SingleInstance();return services;}

4.

//依赖注入
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory())

以及再startup.cs中添加ConfigureContainer方法

   public void ConfigureContainer(ContainerBuilder builder)
   {
       ExtAutofac.InitAutofac(builder);
   }

在app层

namespace App
{public static  class ExtAutofac{private static IContainer _container;public static void InitAutofac(ContainerBuilder builder){//注册数据库基础操作和工作单元builder.RegisterGeneric(typeof(BaseRepository<,>)).As(typeof(IRepository<,>));builder.RegisterGeneric(typeof(UnitWork<>)).As(typeof(IUnitWork<>));//注册app层builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly());builder.RegisterType(typeof(RedisCacheContext)).As(typeof(ICacheContext));builder.RegisterType(typeof(HttpContextAccessor)).As(typeof(IHttpContextAccessor));InitDependency(builder);}/// <summary>/// 注入所有继承了IDependency接口/// </summary>/// <param name="builder"></param>private static void InitDependency(ContainerBuilder builder){Type baseType = typeof(IDependency);var compilationLibrary = DependencyContext.Default.CompileLibraries.Where(x => !x.Serviceable&& x.Type == "project").ToList();var count1 = compilationLibrary.Count;List<Assembly> assemblyList = new List<Assembly>();foreach (var _compilation in compilationLibrary){try{assemblyList.Add(AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(_compilation.Name)));}catch (Exception ex){Console.WriteLine(_compilation.Name + ex.Message);}}builder.RegisterAssemblyTypes(assemblyList.ToArray()).Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract).AsSelf().AsImplementedInterfaces().InstancePerLifetimeScope();}}
}

http://www.mmbaike.com/news/44494.html

相关文章:

  • 计算机网络资源网站建设论文网络营销的4p策略
  • 茂名优化网站建设超云seo优化
  • 网站建设合同付款比例贵州网站seo
  • 农产品网站建设策划宁波网站关键词优化代码
  • 19网站建设推广用哪个平台效果好
  • 网站数据分析报表搜索引擎营销的方法
  • 做信公众号首图的网站百度免费网站制作
  • 大同做网站武汉seo优化排名公司
  • 在哪个网站做视频可以赚钱推广普通话宣传周活动方案
  • 运城网站制作搜一搜排名点击软件
  • 网站板块怎么做台州百度快照优化公司
  • 那样的网站南宁seo关键词排名
  • 企业平台网站制作郑州网络营销学校
  • 回到明朝当王爷如何优化网络环境
  • 杭州企业自助建站百度指数对比
  • 可以做科学模拟实验的网站数据分析师培训机构推荐
  • 六安市建设局网站凡科网小程序
  • 网站备案是每年一次吗晚上必备免费软件大全苹果
  • 高端品牌网站建设服务重庆官网seo分析
  • 网站改版怎么做百度引擎搜索推广
  • 视频网站做app还是h5什么是网络营销工具
  • 浙江住房与城乡建设厅官方网站查询搜索引擎入口google
  • 大成建设株式会社网站泉州网站建设优化
  • 高性能网站建设指南 书最新消息新闻头条
  • 靓号网建站黄页推广引流
  • 番禺 大石网站建设贵阳seo网站管理
  • 八埏网站开发友情链接站长平台
  • 域名 网址 网站名称互联网广告投放
  • 漂流瓶说自己是做网站的刷网站关键词工具
  • 织梦 和wordpress百度搜索推广优化师工作内容