C# 依賴注入IServiceCollection的AddSingleton方法使用
AddSingleton(IServiceCollection, Type, Func<IServiceProvider,Object>)方法
這個方法是通過提供一個Func<IServiceProvider,Object>的delegate委託來實現服務的例項獲取。具體怎麼用,下面給一個簡單例子:
using System;
using Microsoft.Extensions.DependencyInjection;
class Program
{
interface ITianChao
{
void hello();
}
class TianChao:ITianChao
{
public int A{get;set;}
public int B{get;set;}
public TianChao(int a, int b)
{
A = a;
B = b;
}
void ITianChao.hello()
{
System.Console.WriteLine("hello");
}
}
class Hongse
{
public TianChao GetTC()
{
return new TianChao(44,55);
}
}
static void Main(string[] args)
{
IServiceCollection services = new ServiceCollection();
services.AddSingleton(typeof(TianChao), sp => {
var hs = sp.GetService<Hongse>();
return hs.GetTC();
});
services.AddSingleton(new Hongse());
IServiceProvider serviceProvider = services.BuildServiceProvider();
object mything = serviceProvider.GetService<TianChao>();
}
}
當程式碼執行到最後一行serviceProvider.GetService()的時候,會去呼叫執行AddSinglenton()方法提供的delegate委託程式碼(也就是39-40行程式碼),委託程式碼傳入的引數sp就是程式碼中建立的serviceProvider本身,執行完畢返回需要的服務物件。
因此AddSingleton(IServiceCollection, Type, Func<IServiceProvider,Object>)這個過載便於我們利用已經存在服務容器中的服務來生成需要取得的服務物件。
相關文章
- 探索 .NET Core 依賴注入的 IServiceCollection依賴注入
- Laravel 使用依賴注入呼叫方法Laravel依賴注入
- C# 依賴注入 & MEFC#依賴注入
- C#中的依賴注入和IoC容器C#依賴注入
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- React 原始碼中的依賴注入方法React原始碼依賴注入
- spring 的依賴注入Spring依賴注入
- WinForm依賴注入簡單使用ORM依賴注入
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- ASP.NETCore使用AutoFac依賴注入ASP.NETNetCore依賴注入
- 使用google wire解決依賴注入Go依賴注入
- WPF/C#:在WPF中如何實現依賴注入C#依賴注入
- Spring的依賴注入的方式Spring依賴注入
- 我看依賴注入依賴注入
- 依賴注入系列教程依賴注入
- Spring 依賴注入 DISpring依賴注入
- 理解 Angular 依賴注入Angular依賴注入
- Abp vNext 依賴注入依賴注入
- Sping-依賴注入依賴注入
- Spring IOC——依賴注入Spring依賴注入
- [譯] 依賴注入?? 哈??依賴注入
- Angular 依賴注入原理Angular依賴注入
- .Net Core — 依賴注入依賴注入
- 類的反射和依賴注入反射依賴注入
- [譯]javascript中的依賴注入JavaScript依賴注入
- 更優雅的在 Xunit 中使用依賴注入依賴注入
- Golang 依賴注入設計哲學|12.6K 🌟 的依賴注入庫 wireGolang依賴注入
- 關於依賴注入(typescript)依賴注入TypeScript
- 深入淺出依賴注入依賴注入
- AngularJS 4(六)【依賴注入】AngularJS依賴注入
- .NET8 依賴注入依賴注入
- Spring.Net 依賴注入Spring依賴注入
- 入門系列-依賴注入依賴注入
- Spring系列.依賴注入配置Spring依賴注入
- Asp .Net Core 依賴注入依賴注入
- IOC容器和依賴注入依賴注入
- 什麼是依賴注入依賴注入