如何利用.NET Core内置DI容器实现依赖项的延迟加载?
- 内容介绍
- 文章标签
- 相关推荐
本文共计858个文字,预计阅读时间需要4分钟。
在特定情境下,我们希望能够推迟一个依赖的初始化。如果使用的是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分钟。
在特定情境下,我们希望能够推迟一个依赖的初始化。如果使用的是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上提供的一个例子进行进行简单改造,跑起来看看。

