日常生活的交流与学习

首页 新随笔 联系 管理

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

using Microsoft.Extensions.DependencyInjection;
 

ServiceCollection services = new ServiceCollection();
// 瞬态服务
services.AddTransient<TestServiceImpl>(); // => false

// 作用域服务
// services.AddScoped<TestServiceImpl>(); // => true

// 单例服务
// services.AddSingleton<TestServiceImpl>(); // => true

using (ServiceProvider sp = services.BuildServiceProvider())
{
    // 服务定位器
    var ts1 = sp.GetRequiredService<TestServiceImpl>();
    var ts2 = sp.GetRequiredService<TestServiceImpl>();
    Console.WriteLine(object.ReferenceEquals(ts1, ts2));
}
  1. 核心代码

依赖注入的基本使用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();
}

posted on 2024-02-09 21:34  lazycookie  阅读(12)  评论(0编辑  收藏  举报