如何利用.NET Core内置DI容器实现依赖项的延迟加载?

更新于
2026-07-26 10:33:54
13阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计858个文字,预计阅读时间需要4分钟。

如何利用.NET Core内置DI容器实现依赖项的延迟加载?

在特定情境下,我们希望能够推迟一个依赖的初始化。如果使用的是autofac,可以通过注入Lazy来实现。下面是对autofac GitHub上提供的示例进行简化的步骤,请看以下内容:

原始示例:public class Example{ private readonly IMyDependency _myDependency;

public Example(IMyDependency myDependency) { _myDependency=myDependency; }

public void DoSomething() { _myDependency.DoSomething(); }}

简化版:public class Example{ private readonly Lazy _myDependency;

public Example() { _myDependency=new Lazy(()=> new MyDependency()); }

public void DoSomething() { _myDependency.Value.DoSomething(); }}以上是简化后的示例,可以直接运行查看效果。

在某些情况,我们希望能延迟一个依赖的初始化。如果使用的是autofac,我们可以通过注入Lazy来实现。

我们对 autofac GitHub上提供的一个例子进行进行简单改造,跑起来看看。

阅读全文

本文共计858个文字,预计阅读时间需要4分钟。

如何利用.NET Core内置DI容器实现依赖项的延迟加载?

在特定情境下,我们希望能够推迟一个依赖的初始化。如果使用的是autofac,可以通过注入Lazy来实现。下面是对autofac GitHub上提供的示例进行简化的步骤,请看以下内容:

原始示例:public class Example{ private readonly IMyDependency _myDependency;

public Example(IMyDependency myDependency) { _myDependency=myDependency; }

public void DoSomething() { _myDependency.DoSomething(); }}

简化版:public class Example{ private readonly Lazy _myDependency;

public Example() { _myDependency=new Lazy(()=> new MyDependency()); }

public void DoSomething() { _myDependency.Value.DoSomething(); }}以上是简化后的示例,可以直接运行查看效果。

在某些情况,我们希望能延迟一个依赖的初始化。如果使用的是autofac,我们可以通过注入Lazy来实现。

我们对 autofac GitHub上提供的一个例子进行进行简单改造,跑起来看看。

阅读全文