首页 > 其他分享 >net core依赖注入

net core依赖注入

时间:2023-05-10 14:12:00浏览次数:35  
标签:core 依赖 app public Services using net builder

.NetCore中依赖注入有几个关键的类型,简单介绍一下:

IServiceCollection:负责存储注册的服务,可以通过其扩展方法进行服务注册;
ServiceDescriptor:服务注册时的信息,如服务类型、实现类型、实例类型、生命周期等;
IServiceProvider: 理解是常说的容器,是IServiceCollection创建出来的,用来提供实例的;
IServiceScope:表示一个容器的子容器的生命周期;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;

var builder = WebApplication.CreateBuilder(args);
// builder.Services.IsReadOnly = false;
builder.Services.AddScoped<IFoo,Foo>();
using (IServiceScope scope = builder.Services.BuildServiceProvider().CreateScope())
{
   var foo = scope.ServiceProvider.GetService<IFoo>();
   foo.Show();
}
// 依赖注入的东西要放到Build之前。 
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.MapGet("/2", () => "Hello World!");

app.Run();

背景:net 7.

public interface IFoo{
   public void Show();
}
public class Foo : IFoo{
    public void Show(){
        System.Console.WriteLine("hello Foo");
    }
}

 

标签:core,依赖,app,public,Services,using,net,builder
From: https://www.cnblogs.com/Insist-Y/p/17387824.html

相关文章

  • .Net7编译为WASM
    1.安装wasi-sdk1.下载下载地址:https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-16/wasi-sdk-16.0-mingw.tar.gz2.安装将下载的文件解压到用户目录下的.wasi-sdk例如我最终的目录是C:\Users\fanqi.wasi-sdk\wasi-sdk-16.02.安装运行工具【二选一】1.wa......
  • Transformer meets UNet
    简单来说,就是分为两个流,用CNN来获取局部信息,用tranformer获取全局上下文信息,Transformer模块生成一个图像级上下文表示(ICR)来构建图像级的空间依赖图,并生成区域重要性系数(RIC)来模拟每个区域的重要性。模型结构如下: 在第一个流当中,我们应用CNN来获取图像(但好像是个二维的图......
  • 推荐一个.Net Core开发的Websocket群聊、私聊的开源项目
    今天给大家推荐一个使用Websocket协议实现的、高性能即时聊天组件,可用于群聊、好友聊天、游戏直播等场景。项目简介这是一个基于.NetCore开发的、简单、高性能的通讯组件,支持点对点发送、群聊、在线状态的订阅。该项目还包含群聊例子,可以用于学习。技术架构1、跨平台:基于.Ne......
  • @OneToMany and @OneToOne
    @OneToManyand@OneToOne@OneToMany默认情况下,JPA为具有一对多多重性的多值关联定义一个OneToMany映射。使用@OneToMany批注:将获取类型配置为LAZY由于所使用的Collection不是使用一般参数定义的,因此配置关联的目标实体配置必须层叠到关联目标的操作:例如,如果删除了拥有......
  • C# .Net Core 合并PDF文件
    使用PdfSharpCorenuget包代码实现usingMicrosoft.AspNetCore.Razor.TagHelpers;usingPdfSharpCore.Pdf;usingPdfSharpCore.Pdf.IO;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace......
  • What does .NET's String.Normalize do?
    Whatdoes.NET'sString.Normalizedo?回答1OnedifferencebetweenformCandformDishowletterswithaccentsarerepresented:formCusesasingleletter-with-accentcodepoint,whileformDseparatesthatintoaletterandanaccent.Forinstance......
  • Kubernetes概述 (一篇教你认识k8s)
    一、Kubernetes概述 1.k8s是什么K8S的全称为Kubernetes(K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。作用:用于自动部署、扩展和管理“容器化(containerized)应用程序"的开源系统。可以理解成K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群,是一......
  • log4net 多文件配置
    C#log4net.Config.XmlConfigurator.Configure(newSystem.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory+"App.config"));testLog=log4net.LogManager.GetLogger("testLog");warnLog=log4net.LogManager.GetLogger......
  • 4.Spring之依赖注入源码解析
    Spring中到底有几种依赖注入的方式?首先分两种:手动注入自动注入手动注入在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。<beanname="userService"class="com.luban.service.UserService"> <propertyname="orderService"ref="orderService"/>&l......
  • 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数
    全文链接:http://tecdat.cn/?p=23378最近我们被客户要求撰写关于高维数据惩罚回归方法的研究报告,包括一些图形和统计输出。在本文中,我们将使用基因表达数据。这个数据集包含120个样本的200个基因的基因表达数据。这些数据来源于哺乳动物眼组织样本的微阵列实验1介绍在本文中,我......