net core Autofac 替换默认的服务容器 DI,微软自动的容器 不支持命名选项的

微软默认的容器,不支持命名选项,同一接口,多个实现。 就不支持了。
在这里插入图片描述

配置core 支持Autofac 容器

在这里插入图片描述

using Autofac;
using Autofac.Extensions.DependencyInjection;namespace WebApplication13
{public interface IMyService{string GetData();}public class MyService : IMyService{public string GetData(){return "Data from MyService---MyService";}}public class MyService2 : IMyService{public string GetData(){return "2222 from MyService---MyService2";}}public class MyApplicationModule : Module{protected override void Load(ContainerBuilder builder){builder.RegisterType<MyService>().As<IMyService>();}}public class Program{public static void Main(string[] args){var builder = WebApplication.CreateBuilder(args);// 在这里添加内置DI容器的服务配置// 例如,builder.Services.AddRazorPages();// 使用Autofac作为服务提供商builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(containerBuilder =>{// 在这里向Autofac容器注册服务  此处使用模块方式注入containerBuilder.RegisterModule<MyApplicationModule>();}); Add services to the container.//builder.Services.AddRazorPages();var app = builder.Build();// Configure the HTTP request pipeline.if (!app.Environment.IsDevelopment()){app.UseExceptionHandler("/Error");}app.UseStaticFiles();app.UseRouting();app.UseAuthorization();app.MapRazorPages();app.Run();}}
}

在这里插入图片描述

在这里插入图片描述

autofac 支持 命名 、key

在这里插入图片描述
在这里插入图片描述

using Autofac;
using Autofac.Extensions.DependencyInjection;namespace WebApplication13
{public interface IMyService{string GetData();}public class MyService : IMyService{public string GetData(){return "Data from MyService---MyService";}}public class MyService2 : IMyService{public string GetData(){return "2222 from MyService---MyService2";}}public class MyApplicationModule : Module{protected override void Load(ContainerBuilder builder){builder.RegisterType<MyService>().As<IMyService>();builder.RegisterType<MyService>().As<IMyService>().Named<IMyService>(typeof(MyService).Name);//builder.RegisterType<MyService>().As<IMyService>().Keyed<IMyService>(typeof(MyService).Name);builder.RegisterType<MyService2>().As<IMyService>().Named<IMyService>(nameof(MyService2));}}public class Program{public static void Main(string[] args){var builder = WebApplication.CreateBuilder(args);// 在这里添加内置DI容器的服务配置// 例如,builder.Services.AddRazorPages();// 使用Autofac作为服务提供商builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(containerBuilder =>{// 在这里向Autofac容器注册服务  此处使用模块方式注入containerBuilder.RegisterModule<MyApplicationModule>();}); Add services to the container.//builder.Services.AddRazorPages();var app = builder.Build();// Configure the HTTP request pipeline.if (!app.Environment.IsDevelopment()){app.UseExceptionHandler("/Error");}app.UseStaticFiles();app.UseRouting();app.UseAuthorization();app.MapRazorPages();app.Run();}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/464225.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构系列---高并发

目录标题 前言宏观架构细节解读第一层 &#xff1a;DNS第二层 &#xff1a; LVS 负载第三层 &#xff1a; Nginx第四层 &#xff1a; Gateway Application并发上限更多方案 业务扩展从域名角度如何承受更大的流量从业务的角度看如何分流大的流量 总结 前言 年轻的时候看到文章…

植被遥感常用反射特征表达

Figure: HDRF Let Ω ′ \Omega Ω′ be the incident solid angle, Ω \Omega Ω is leaving solid angle. Consider the BRDF of a Lamvertian target is 1 π \frac{1}{\pi} π1​, the BRF is 1. The HDRF of a target is defined as: R h e m ( Ω ) Φ r Φ r l a …

使用 MONAI Deploy 在 AMD GPU 上进行全身分割

Total body segmentation using MONAI Deploy on an AMD GPU — ROCm Blogs 2024 年 4 月 4 日 作者&#xff1a; Vara Lakshmi Bayanagari. 医疗开放网络人工智能&#xff08;MONAI&#xff09;是一个开源组织&#xff0c;提供最先进的医疗成像模型的 PyTorch 实现&#xff0c…

解决 ClickHouse 高可用集群中 VRID 冲突问题:基于 chproxy 和 keepalived 的实践分析

Part1背景描述 近期&#xff0c;我们部署了两套 ClickHouse 生产集群&#xff0c;分别位于同城的两个数据中心。这两套集群的数据保持一致&#xff0c;以便在一个数据中心发生故障时&#xff0c;能够迅速切换应用至另一个数据中心的 ClickHouse 实例&#xff0c;确保服务连续性…

推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案

在数字化转型的浪潮中&#xff0c;企业对于数据传输的需求日益增加&#xff0c;特别是在不同网络环境之间的文件共享和传输。为了满足这一需求&#xff0c;FileLink数据跨网摆渡系统应运而生&#xff0c;为企业提供了一种安全、高效的数据传输解决方案。 安全第一&#xff0c;保…

力扣排序350题 两个元组的交集2

题目&#xff1a; 给你两个整数数组 nums1 和 nums2 &#xff0c;请你以数组形式返回两 数组的交集。返回结果中每个元素出现的次数&#xff0c;应与元素在两个 数组中都出现的次数一致&#xff08;如果出现次数不一致&#xff0c;则考虑取 较小值&#xff09;。可以不考虑输出…

Python酷库之旅-第三方库Pandas(193)

目录 一、用法精讲 896、pandas.Index.isna方法 896-1、语法 896-2、参数 896-3、功能 896-4、返回值 896-5、说明 896-6、用法 896-6-1、数据准备 896-6-2、代码示例 896-6-3、结果输出 897、pandas.Index.notna方法 897-1、语法 897-2、参数 897-3、功能 897…

使用Mac如何才能提高OCR与翻译的效率

OCR与截图大家都不陌生&#xff0c;或许有的朋友对于这两项功能用到的不多&#xff0c;但是如果经常会用到的话&#xff0c;那你就该看看了 iOCR&#xff0c;快捷键唤出翻译窗口&#xff0c;不论是截图翻译、划词翻译、输入翻译、剪切板翻译&#xff0c;统统快捷键完成&#x…

《欢乐饭米粒儿9》第五期:用笑声诠释生活,让爱成为日常

在忙碌的生活节奏中&#xff0c;我们总是在寻找那份能够触动心灵深处的温暖与欢笑。由鲜博士独家冠名播出的独创小品剧《欢乐饭米粒儿》第九季作为一档家庭喜剧节目&#xff0c;正是这样一股清流&#xff0c;它以轻松幽默的方式&#xff0c;将家的温暖、爱的传递和生活的真谛娓…

基于人脸识别PCA算法matlab实现及详细步骤讲解

人脸识别 % FaceRec.m % PCA 人脸识别修订版&#xff0c;识别率88&#xff05; % calc xmean,sigma and its eigen decomposition allsamples[];%所有训练图像 for i1:40 for j1:5 aimread(strcat(e:\ORL\s,num2str(i),\,num2str(j),.jpg)); % imshow(a); ba(1:112*92…

C#的Event事件示例小白级剖析

1、委托Delegate 首先说一下delegate委托&#xff0c;委托是将方法作为参数进行传递。 // 定义了一个委托类型public delegate void MyDelegate(int num);// 定义了一个啥也不干的委托实例public MyDelegate m_delegate _ > {};// 定义了一个和委托相同格式的方法public …

Android 使用ninja加速编译的方法

ninja的简介 随着Android版本的更迭&#xff0c;makefile体系逐渐增多&#xff0c;导致make单编模块的时间越来越长&#xff0c;每次都需要半个小时甚至更长时间&#xff0c;其原因为每次make都会重新加载所有mk文件&#xff0c;再生成ninja编译&#xff0c;此完整过程十分耗时…

VSCode 1.82之后的vscode server离线安装

概述 因为今天在公司开发项目的时候&#xff0c;需要离线配置vscode远程开发环境&#xff0c; 根据参考链接1配置了一遍&#xff0c;不管怎么重启&#xff0c;VSCODE都还是提示下载vscode server&#xff0c;后面在官方issue上找到了解决方案 解决方案 修改Remote SSH的配置…

什么是 OpenTelemetry?

OpenTelemetry 定义 OpenTelemetry (OTel) 是一个开源可观测性框架&#xff0c;允许开发团队以单一、统一的格式生成、处理和传输遥测数据&#xff08;telemetry data&#xff09;。它由云原生计算基金会 (CNCF) 开发&#xff0c;旨在提供标准化协议和工具&#xff0c;用于收集…

缓存、注解、分页

一.缓存 作用&#xff1a;应用查询上&#xff0c;内存中的块区域。 缓存查询结果&#xff0c;减少与数据库的交互&#xff0c;从而提高运行效率。 1.SqlSession 缓存 1. 又称为一级缓存&#xff0c;mybatis自动开启。 2. 作用范围&#xff1a;同一…

AI打造超写实虚拟人物:是科技奇迹还是伦理挑战?

内容概要 在这个科技飞速发展的时代&#xff0c;超写实虚拟人物仿佛从科幻小说中走进了我们的日常生活。它们以生动的形象和细腻的动作&#xff0c;不仅在影视、广告和游戏中吸引了无数目光&#xff0c;更让我们对AI技术的未来充满了期待和疑惑。这些数字化身在逼真的外貌下&a…

CODESYS可视化星三角降压启动程序控制电气动画图

#一个用CODESYS可视化做的星三角降压启动程序控制电气动画图# 前言: 关于星三角降压启动控制,作为电气行业入门的必备知识点,涉及到电机本身特性导致的电压,电流(转矩),功率和转速等一系列的关系和变化,以及星型和三角形的绕组方式。本篇我们使用CODESYS结合程序和可视…

物联网赋能的人工智能图像检测系统

一、引言 在数字化时代&#xff0c;物联网&#xff08;IoT&#xff09;技术已经成为我们生活中不可或缺的一部分&#xff0c;极大地优化了我们的交通出行和医疗服务。物联网的核心优势在于其卓越的连接能力&#xff0c;它能够构建和连接庞大的资源数据库&#xff0c;为智能化图…

软件架构演变:从单体架构到LLM链式调用

0 前言 软件架构——我们数字世界的蓝图——自20世纪中叶计算机时代诞生以来&#xff0c;已经发生了巨大演变。 20世纪60年代和70年代早期&#xff0c;以大型主机和单体软件为主导。而今天&#xff0c;数字领域已完全不同&#xff0c;运行在由云计算、API连接、AI算法、微服务…

Claude 3.5 Sonnet模型新增了PDF支持功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…