首页 > 其他分享 >dotnet 依赖注入 注入方式

dotnet 依赖注入 注入方式

时间:2024-02-09 21:44:56浏览次数:23  
标签:依赖 Name services dotnet ITestService TestServiceImpl public 注入

依赖注入的基本使用1/Program.cs

using Microsoft.Extensions.DependencyInjection;

ServiceCollection services = new ServiceCollection();

// AddTransient的两种方式
// services.AddTransient<ITestService,TestServiceImpl>();
// services.AddTransient(typeof(ITestService),typeof(TestServiceImpl));

// AddSingleton的三种方式
// services.AddSingleton<ITestService,TestServiceImpl>();
// services.AddSingleton(typeof(ITestService),new TestServiceImpl());
services.AddSingleton<ITestService>(new TestServiceImpl());

// AddScoped的三种方式
// services.AddScoped<ITestService, TestServiceImpl>();

using (ServiceProvider sp = services.BuildServiceProvider())
{
    var ts1 = sp.GetRequiredService<ITestService>();
    ts1.Name = "Alice";
    ts1.SayHi();
}

依赖注入的基本使用1/TestServiceImpl2.cs

public class TestServiceImpl2 : ITestService
{
    public string Name { get; set; }
    public void SayHi()
    {
        Console.WriteLine($"你好,我是{Name}");
    }
}

依赖注入的基本使用1/TestServiceImpl.cs

public class TestServiceImpl : ITestService
{
    public string Name { get; set; }
    public void SayHi()
    {
        Console.WriteLine($"Hi, I'm {Name}");
    }
}

依赖注入的基本使用1/ITestService.cs

public interface ITestService
{
    public string Name { get; set; }
    public void SayHi();
}

标签:依赖,Name,services,dotnet,ITestService,TestServiceImpl,public,注入
From: https://www.cnblogs.com/zhuoss/p/18012629

相关文章

  • dotnet 依赖注入 服务定位器
    依赖注入的基本使用1/Program.csusingMicrosoft.Extensions.DependencyInjection;ServiceCollectionservices=newServiceCollection();//瞬态服务services.AddTransient<TestServiceImpl>();//=>false//作用域服务//services.AddScoped<TestServiceImpl>();......
  • 对时间强依赖的方法如何做单元测试
    背景项目当中需要进行业务时间的校验,如上午9:00-下午17:00,在9:00前或17:00后是不能处理相关业务的。因此在业务校验的Service中定义了一个checkBizTime()方法。原本代码如下:publicvoidcheckBizTime(){DatecurrentTime=newDate();//DateUtil.parse的......
  • 2月摸鱼计划04 Go语言依赖管理
    2.0依赖管理这一章我们主要讲解go的依赖管理,主要涉及go依赖管理的演进路线和gomodule实践依赖指各种开发包对于helloworld以及类似的单体函数只需要依赖原生SDK,而实际工程会相对复杂,我们不可能基于标准库0~1编码搭建,而更多的关注业务逻辑的实现,而其他的涉及框架、日志、driver......
  • 【Spring】- 自动注入注解
    【@Autowired】冷知识:@AutowiredprivateMovieCatalog[]movieCatalogs;//根据类型注入全部的bean对象数组@AutowiredprivateSet<MovieCatalog>movieCatalogs;//根据类型注入全部的bean对象集合@AutowiredprivateMap<String,MovieCatalog>movieCatalogs;//根据类型注......
  • ThinkPHP 6.0 SQL注入漏洞修复
    公司买的官网被政府网安检测出SQL注入漏洞:隐患描述SQL漏洞证明语句: python3sqlmap.py-u"http://xxxx?keywords=1"-pkeywords--level=5--risk=3--tamper=space2comment.py,between.py--current-db--random-agent--time-sec=10--batch--dbms="MySQL"漏洞回显:权......
  • 解决golang依赖库被删库问题
    调用的开源库引用了github个人仓库,如果作者删除了仓库或者改成私人仓库,那么gomodtidy就会失败以github.com/mitchellh/osext为例,作者因为某些原因删除了仓库,并给出了替代的官方仓库github.com/kardianos/osext使用replace命令gomodedit-replace[oldgitpackage]@[versi......
  • "resolutions" 主要用于解决依赖树中可能存在的版本冲突问题
    "resolutions":{"es6-iterator//es5-ext":"0.10.50","d//es5-ext":"0.10.50","es5-ext":"0.10.50"}这个是什么意思?这段配置是出现在package.json文件中的"resolutions"字段,它在使用Yarn2(berry)或......
  • springboot之ImportBeanDefinitionRegistrar动态注入
    SpringBoot中的使用在SpringBoot内置容器的相关自动配置中有一个ServletWebServerFactoryAutoConfiguration类。该类的部分代码如下:@Configuration(proxyBeanMethods=false)@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)@ConditionalOnClass(ServletRequest.class)@Con......
  • 项目依赖
    1、数据库驱动:mysql-connector-j<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.3.0</version></dependency>2、连接数据库:spring-boot-starter-jdbc,根据自己的spring......
  • yarn安装太慢,如何多线程安装依赖
    Yarn本身设计时就考虑到了并行安装依赖以提高速度,它默认使用多线程来下载和安装包。当执行yarninstall时,Yarn会利用所有可用的CPU核心,并通过其内部的并行化机制来加速安装过程。如果你发现Yarn在安装依赖时仍然显得较慢,可以尝试以下方法来优化:启用网络代理:如果你的网......