故如虹,知恩;故如月,知明
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

net core依赖注入

4714人阅读 2019/2/14 11:41 总访问:3914593 评论:0 收藏:0 手机
分类: .NET Core


添加注入


首先需要添加好一个注入:

其实添加好类与类之间的关系,在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>


欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价