一、前言

在之前的文章【ASP.NET Core 整合Autofac和Castle實(shí)現(xiàn)自動(dòng)AOP攔截】中,我們講過除了ASP.NETCore自帶的IOC容器外,如何使用Autofac來接管IServiceProvider進(jìn)行依賴注入。

最近老有想法在ASP.NET Mvc Core中實(shí)現(xiàn)Controller的屬性值的依賴注入,但是找遍了Microsoft.Extensions.DependencyInjection類庫也沒找到對(duì)應(yīng)的方法,而且查看源代碼之后發(fā)現(xiàn)其都是針對(duì)構(gòu)造器進(jìn)行依賴注入的,并沒有對(duì)屬性或字段進(jìn)行依賴注入。

官方給我們的兩種獲取依賴注入結(jié)果的方法:ActivatorUtilities.CreateInstanceIServiceProvider.GetService,這兩個(gè)方法的區(qū)別,這里我就不詳細(xì)闡述了,有興趣的朋友可以自己去查看一下這兩個(gè)類的源代碼:ServiceProviderActivatorUtilities,但總得來說兩個(gè)方法在創(chuàng)建對(duì)象時(shí)都沒有注入屬性值。

簡單的調(diào)用這兩個(gè)方法:首先在Startup.ConfigureServices函數(shù)中,添加語句services.AddTransient<IUser, MyUser>();

	
  1. 網(wǎng)友評(píng)論