当我们在 .net core (2.1) 中运行如下代码注入 Lazy<T> 变量的时候:

public AccountService(Lazy<IHttpContextAccessor> httpContextAccessor)
{
}

可能会遇到这样的错误提示:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[Microsoft.AspNetCore.Http.IHttpContextAccessor]' while attempting to activate 'Senparc.Service.AccountService'.

原因在于系统没有办法识别 Lazy<T> 类型的依赖注入条件,我们可以在 Startup.cs 中的 public void ConfigureServices(IServiceCollection services) 方法中加入如下粗体代码使之生效:

        public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();//默认会有
services.AddTransient(typeof(Lazy<>));//注册Lazy
}

Lazy<T> 是一个非常好的延迟加载的特性,可以在使用到该变量的时候才真正进行参数实例化和一系列控制反转的操作。因为通常我们某一个Service中可能只有一部分的方法需要用到某个变量,但是这个变量又需要在构造函数中依赖注入,此时 Lazy<T> 将帮助提升效率。

最新文章

  1. JavaScript的Ajax请求示例
  2. 把web项目部署到tomocat上
  3. C++ 简单的学生信息管理系统
  4. poj 2584 T-Shirt Gumbo (二分匹配)
  5. Java关系操作符简写
  6. C#: XML Serializer
  7. 兼容性所有浏览器的透明CSS设置
  8. [转]如何编译tizen源码(图文教程)?
  9. javascript笔记——js面试问题
  10. 个人作业-Homework1感想
  11. C# 程序性能提升篇-2、类型(字段类型、class和struct)的错误定义所影响性能浅析
  12. Android Studio怎样更改JDK和SDK的路径?
  13. Express与NodeJs创建服务器的两种方法
  14. JMeter-Eclipse添加自定义函数 MD5加密 32位和16位
  15. Gym 100952C&amp;&amp;2015 HIAST Collegiate Programming Contest C. Palindrome Again !!【字符串,模拟】
  16. IETester是一个免费的Web浏览器调试工具
  17. 关于JAVA中包装类的是什么类型传递这个问题的笔记
  18. operator &lt;&lt;”不明确
  19. linux convert mp3 to wav and opus to wav
  20. 树莓派进阶之路 (023) - Windows下用串行连接控制树莓派(转)

热门文章

  1. WebService关于Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart)问题解决
  2. 理解StringBuilder
  3. docker-compose使用
  4. 炫酷MD风之dialog各种对话框
  5. postman笔记1--postman的安装教程
  6. 记录在Ubuntu 18.04系统中安装Apache, MySQL和PHP环境
  7. spring multipart源码分析:
  8. linux性能监控(转)
  9. mongodb内嵌文档的javaapi,增删改查
  10. resin4配置之一个resin下多个app的正确配置方法