首页 > 其他分享 >.NET7依赖注入 延迟加载模式

.NET7依赖注入 延迟加载模式

时间:2023-03-06 14:14:10浏览次数:37  
标签:Lazy DoSomething MyDependency MyService myDependency NET7 加载 public 延迟

.NET7依赖注入 延迟加载模式

延迟加载(Lazy Loading)模式是指在服务被首次请求时,才对其进行初始化。这种模式可以减少程序启动时间和资源消耗。示例代码如下:

// MyService 类定义
public class MyService
{
    private readonly Lazy<MyDependency> _myDependency;

    public MyService(Lazy<MyDependency> myDependency)
    {
        _myDependency = myDependency;
    }

    public void DoSomething()
    {
        // 在第一次访问 MyDependency 实例时进行实例化
        _myDependency.Value.DoSomething();
    }
}

// MyDependency 类定义
public class MyDependency
{
    public void DoSomething()
    {
        Console.WriteLine("MyDependency.DoSomething called");
    }
}

// 注册 MyService 和 MyDependency
services.AddScoped<MyService>();
services.AddScoped<MyDependency>();

// 使用 MyService
var myService = serviceProvider.GetRequiredService<MyService>();
myService.DoSomething();

在上述示例中,MyService 类通过构造函数注入方式依赖于 Lazy 类型的对象。在 DoSomething 方法中,我们通过访问_myDependency.Value 来获取 MyDependency 的实例。由于使用了 Lazy 类,MyDependency 类的实例化被延迟到第一次访问时进行,从而实现了延迟加载。

标签:Lazy,DoSomething,MyDependency,MyService,myDependency,NET7,加载,public,延迟
From: https://www.cnblogs.com/YataoFeng/p/17183601.html

相关文章

  • .NET7依赖注入 装饰器模式
    ##.NET7依赖注入装饰器模式装饰器(Decorator)模式是一种在不改变原始类的情况下增强其功能的模式。在DI中,装饰器模式常用于在不改变原始服务的实现的情况下增强其功能,例......
  • .NET7依赖注入
    依赖注入(DependencyInjection,简称DI)功能,使得应用程序可以更加容易地管理组件之间的依赖关系。在.NET7中,DI是通过Microsoft.Extensions.DependencyInjection命名空......
  • Failed to load resource: net::ERR_CONNECTION_REFUSED:加载资源失败-- 问题思路和解
    前几天在做前后端数据交互的时候,遇到了这个问题:Failedtoloadresource:net::ERR_CONNECTION_REFUSEDUncaught(inpromise)Error:NetworkErrorFailedtoloadre......
  • Java 类加载时机(动态、静态) 与 类加载过程 详解
    (目录)类加载动态加载和静态加载反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。静态加载:编译时加载相关的类,如果没有则报错,依赖性太强动态......
  • always非阻塞赋值延迟的周期数
    always@(posedgeclkornegedgerst_n)if(!rst_n)beginin_reg=0;out=0;endelsebeginin_reg<=in;out<=in_reg;end    分析:中间变量in_reg在in......
  • 加载内核模块-Unknown symbol错误分析
    在调试过程中,发现一个问题,编译生成一个KO文件,insmod加载后报错:Unknownsymbolvar_set_integer(err0)Unknownsymbolparse_arg_eq(err0)问题分析思路:一、用命令查......
  • JVM 类加载器、双亲委派原理
    类加载器ClassLoader作用:负责装入类。一个java程序运行,至少需要三个类加载器实例,负责加载不同类。BootstrapClassLoader是JVM内核内嵌加载器,主要负载加载JAVA_HOME/lib......
  • JavaScript 文档的加载
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *浏览器在加载一个页面时,是按照自上向下......
  • 定位Dll加载异常的方法
    总体说明动态库加载异常的原因有以下几种:1.dll不在dll搜索路径2.dll依赖的其他dll不在dll搜索路径3.dll与exe不是同一架构,如exe是64位,dll是32位4.dll或依赖的dll其导......
  • 定位解析一个因脚本劫持导致webpack动态加载异常的问题
    问题描述项目现场的前端项目在点击顶部的导航栏切换不同的模块时,会有小概率出现模块加载报错的情况:我们的前端项目里是有基于react-loadable做的懒加载的,上图的12.be789......