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

ops/2024/11/8 18:44:09/

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

配置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.ppmy.cn/ops/132003.html

相关文章

鸿蒙生态崛起:开发者的机遇与挑战

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题 点这里。 实战项目访问&#xff1a;http://javapub.net.cn/ 引言 作为一名技术博主&#xff0c;我对技术趋势始终保持着敏锐的洞察力。在数字化时代&#xff0c;操作系统作为智能设备的核心&#xff0c;其重要性不言而喻。随…

【Mysql NDB Cluster 集群(CentOS 7)安装笔记一】

Mysql NDB Cluster 集群(CentOS 7)安装笔记 NDB集群核心概念 NDBCLUSTER(也称为NDB)是一个内存存储引擎,提供高可用性和数据保存功能。 NDBCLUSTER存储引擎可以配置一系列故障转移和负载平衡选项,但从集群级别的存储引擎开始是最容易的。NDB集群的NDB存储引擎包含一整套…

LabVIEW离心泵性能优化测试系统

开发了一套基于LabVIEW平台开发的离心泵性能优化测试系统。系统集成了数据采集、流量控制、数据存储、报表生成等功能&#xff0c;提供了低成本、便捷操作的解决方案&#xff0c;适用于工业场景中对离心泵性能的精确测评。 项目背景 随着工业化进程的加速&#xff0c;离心泵在…

Netty篇(入门编程)

目录 一、Hello World 1. 目标 2. 服务器端 3. 客户端 4. 流程梳理 &#x1f4a1; 提示 5. 运行结果截图 二、Netty执行流程 1. 流程分析 2. 代码案例 2.1. 引入依赖 2.2. 服务端 服务端 服务端处理器 2.3. 客户端 客户端 客户端处理器 2.4. 代码截图 一、Hel…

Java智慧养老养老护理帮忙代办陪诊陪护平台系统小程序源码

&#x1f31f; 智慧养老新时代&#xff1a;养老护理、帮忙代办、陪诊陪护平台系统全解析 &#x1f3e1; &#x1f475; 引言&#xff1a;智慧养老&#xff0c;让爱无距离 随着科技的飞速发展&#xff0c;智慧养老已成为新时代老年人的新选择。通过养老护理、帮忙代办、陪诊陪护…

群晖NAS本地部署Cloud Sync结合内网穿透远程上传文件并云同步至网盘

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Unity网络开发基础(part5.网络协议)

目录 前言 网络协议概述 OSI模型 OSI模型的规则 第一部分 物理层 数据链路层 网络层 传输层 第二部分 ​编辑 应用层 表示层 会话层 每层的职能 TCP/IP协议 TCP/IP协议的规则 TCP/IP协议每层的职能 TCP/IP协议中的重要协议 TCP协议 三次握手 四次挥手 U…

GK7205V500 GK7250V510 国科微 SOC芯片

GK7205V500 芯片是国科推出的新一代高集成度、高画质、低码率、低功耗的 AI IP Camera SoC 芯 片。 芯片集成 ARM Cortex A7 处理器&#xff0c;支持专业的 ISP 图像处理单元&#xff0c;H.265/H.264 视频编码与神经网络 处理单元&#xff08;NPU&#xff09;&#xff0c…