美文网首页.Netcore.NET
如何在.Netcore控制台应用中使用依赖注入

如何在.Netcore控制台应用中使用依赖注入

作者: Weidaicheng | 来源:发表于2018-12-23 21:21 被阅读1次

    由于最近需要写一个控制台小工具(当然啦,是用.Net core实现,具体信息后边会有博客更新的),因为可能涉及的引用比较多,就想使用依赖注入来打消强依赖。
    其实之前有一个项目已经写过类似的代码了,现在只是不想再去做重复劳动,所以写了一个类库来实现这个在控制台中使用依赖注入。只支持.Netcore 2.0+版本。
    先上代码 DependencyInjection.InConsole

    本篇文章主要介绍如何使用,以及她是如何减轻工作量的。

    1、首先,安装Nuget包

    Nuget package
    可以使用如下命令安装:

    Install-Package DependencyInjection.InConsole -Version 1.0.0-preview
    // or
    dotnet add package DependencyInjection.InConsole --version 1.0.0-preview
    

    2、添加一个类,继承自 Injector 抽象类,并重载 Inject 方法,如下:

    public class ExampleInjector : Injector
    {
        public override void Inject()
        {
            services.AddTransient<Interface, Implication>();
        }
    }
    

    3、在 Main 方法第一行添加如下代码:

    var provider = Startup.ConfigureServices();
    // 如果你不需要provider,也可以这样
    Startup.ConfigureServices();
    

    至此,你就可以在代码中使用注入的类型了。

    关于 IConfiguration

    IConfiguration 已经默认注入,并从 appsettings.json 读取配置,可以直接使用:

    var configuration = provider.GetRequiredService<IConfiguration>();
    Console.WriteLine(configuration["foo"]);
    

    现在只支持使用json键值对方式读取配置。
    如果有任何问题或者想要实现的功能可以去Github提issue,pull request。😄

    相关文章

      网友评论

        本文标题:如何在.Netcore控制台应用中使用依赖注入

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