美文网首页
依赖注入示例

依赖注入示例

作者: 寻找无名的特质 | 来源:发表于2022-04-29 05:53 被阅读0次

注册多个实现的示例:

using ConsoleDI.IEnumerableExample;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace ConsoleDI.Example;

class Program
{
    static Task Main(string[] args)
    {
        using IHost host = CreateHostBuilder(args).Build();

        _ = host.Services.GetService<ExampleService>();

        return host.RunAsync();
    }

    static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureServices((_, services) =>
                services.AddSingleton<IMessageWriter, ConsoleMessageWriter>()
                        .AddSingleton<IMessageWriter, LoggingMessageWriter>()
                        .AddSingleton<ExampleService>());
}

获取多个实现的示例:

using System.Diagnostics;

namespace ConsoleDI.IEnumerableExample;

public class ExampleService
{
    public ExampleService(
        IMessageWriter messageWriter,
        IEnumerable<IMessageWriter> messageWriters)
    {
        Trace.Assert(messageWriter is LoggingMessageWriter);

        var dependencyArray = messageWriters.ToArray();
        Trace.Assert(dependencyArray[0] is ConsoleMessageWriter);
        Trace.Assert(dependencyArray[1] is LoggingMessageWriter);
    }
}

在工厂中,可以获取所有注册的示例,然后根据需要的类型,返回具体的对象。

Transient 操作总是不同,每次检索服务时,都会创建一个新实例。
Scoped 仅随着新范围更改,但在一个范围中是相同的实例。
Singleton 操作总是相同,新实例仅被创建一次。

相关文章

  • 依赖注入示例

    注册多个实现的示例: 获取多个实现的示例: 在工厂中,可以获取所有注册的示例,然后根据需要的类型,返回具体的对象。

  • IOC(setter注入)

    我们也可以通过setter方法注入依赖项。 的 子元素用于setter注入 示例: Employee3.java...

  • php IOC容器的理解

    依赖注入 依赖注入是指一个类必须依赖另一个实例才能进行实例化。 进一步利用接口 升华-IOC容器 使用示例

  • spring如何解决循环依赖

    什么是循环依赖 循环依赖指的是两个bean互相依赖彼此,beanA在示例化的时候要注入beanB,beanB在实例...

  • php 依赖注入的理解

    PHP 依赖注入容器实现 w3c-PHP7中Closure :: call使用示例 php手册-Closure::...

  • 开源项目的依赖注入

    开源项目的依赖注入 依赖注入概念 依赖注入(DI:Dependency Injection): 依赖注入方式: B...

  • dagger 2 详解

    前言 依赖注入概念网络有很多解释,这里就不详细介绍,本文通过一个简单的示例一步步深入了解依赖注入的优势以及为什么使...

  • 资料收集

    依赖注入 AngularJs依赖注入的研究 (已读) 依赖注入(已读)

  • Spring IoC容器之依赖注入

    一、依赖注入的示例:基于XML的配置方式 1、定义Message接口及实现类 public interface M...

  • Dagger2常用注解诠释

    依赖注入 控制反转(IoC)与依赖注入(DI)浅谈依赖注入理解依赖注入(IOC)和学习Unity Gradle配置...

网友评论

      本文标题:依赖注入示例

      本文链接:https://www.haomeiwen.com/subject/xlshertx.html