net core依赖注入
电脑版发表于:2019/2/14 11:41
添加注入
首先需要添加好一个注入:
其实添加好类与类之间的关系,在ConfigureServices中添加注入
services.AddTransient<IArticleDAL, ArticleDAL>();
获取注入的方式
构造函数注入:
private IArticleDAL _articleDAL;
public ArticleController(IArticleDAL articleDAL)
{
_articleDAL = articleDAL;
}使用FromServices获取
public async Task<List<Persons>> ElasticTest([FromServices] IElasticSearchServer elasticSearchServer)
{
var list = await elasticSearchServer.ElasticLinqClient.SearchAsync<Persons>(
p => p.Index("users")
.Query(op => op.Match(
ss => ss.Field(
qq => qq.user == "xj"))));
return list.Documents.ToList();
}直接获取
直接通过 HttpContext来获取实例
HttpContext下有一个RequestedService同样可以用来获取实例对象,不过这种方法一般不很推荐。
IUserDAL userDAL = HttpContext.RequestServices.GetService(typeof(IUserDAL)) as IUserDAL;
属性注入:
ASP.NET Core 的标准依赖注入容器不支持属性注入。但是你可以使用其他容器支持属性注入
在view中使用
在View中需要用@inject ,起一个别名。
@using AJ.Services; @model AJ.Models.AccountViewModel.LoginViewModel @inject ILoginService<ApplicationUser> userService <!DOCTYPE html> <html > <head></head> <body> @userService.GetUserName() </body> </html>
