如何在.NET Core控制台应用程序中使用Microsoft.Extensions.DependencyInjection?

TLDR

我有一个要在.NET Core支持的所有平台(Xamarin,Windows,Mac)上运行的库。为此,我需要一个跨平台的DI来处理特定于平台的自定义项,例如存储,安全性等。

我见过的所有示例都Microsoft.Extensions.DependencyInjection包含ASP.NET Core的代码。控制台应用程序是否存在任何等效/受支持的方案?

另外(理想情况下),我希望用于控制台的DI框架适用于ASP.NET Core,Xamarin和Win32

错误示例

将此代码用作.NET Core应用程序的基础。看来ServiceCollection应该是公共的,但是当我在Mac上使用Xamarin时,IServiceCollection缺少(ServiceCollection)的默认实现

在此处输入图片说明

扎伊斯曼

我基本上像这样使用它:

安装nuget Microsoft.Extensions.DependencyInjection

然后在Program.cs中

using Microsoft.Extensions.DependencyInjection;

 public class Program
    {
        public static void Main(string[] args)
        {

            var services = new ServiceCollection()
                .AddSingleton<WhateverType>(new WhateverType());

            var serviceProvider = services.BuildServiceProvider();


            serviceProvider.GetService<WhateverType>().DoWork();
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Linux中从.NET Core 2.0创建可执行控制台应用程序?

如何在.NET Core RC2控制台应用程序(Linux,Debian 8)中使用System.Data?

如何在Linux上运行.NET Core控制台应用程序

如何从命令行运行.NET Core控制台应用程序

.NET Core控制台应用程序,如何在每个环境中配置appSettings?

.NET Core控制台应用程序中如何处理范围服务实例?

如何在.NET控制台应用程序中获取应用程序的路径?

如何使用Serilog和AutoFac在控制台应用程序中获取Microsoft.Extensions.Logging <T>?

使用ASP.NET Core Microsoft.Extensions.DependencyInjection注册部分关闭的通用类型

如何将LoggerFactory和Microsoft.Extensions.Logging用于.NET Core控制台的C#日志记录

具有Microsoft.Extensions.DependencyInjection的.NET Framework类库

如何使用Microsoft.Extensions.DependencyInjection注册装饰器?

如何在OSX上分发.NET Core 2.0控制台应用程序

如何在.Net核心控制台应用程序中使用依赖注入

如何在.NET Core控制台应用程序中获取MacOS用户名?

如何使用Visual Studio 2019社区创建.NET Core 3控制台应用程序?

.NET Standard 2.0-要使用的Microsoft.Extensions.DependencyInjection.Abstractions版本

如何使用通用主机(HostBuilder)为.NET Core控制台应用程序设置托管环境名称

如何使用Microsoft.Extensions.DependencyInjection在.net框架的webapi中注入依赖项?

在ASP.NET Core中使用Microsoft.Extensions.DependencyInjection时注入IUnityContainer依赖关系的替代方法?

如何使.net Core 3.1控制台应用程序中的控制台记录器正常工作

如何从提供程序(C#.NET Core控制台应用程序)获取Args?

如何在.NET Core控制台应用程序中设置DI容器?

如何在.NET Core控制台应用程序中实现MVVM?

Microsoft.Extensions.DependencyInjection 中的属性注入

如何在 .Net Core 控制台应用程序中引用 .Net Core 库

如何在控制台应用程序 (.Net Core 2.2) 中使用带有 DinkToPdf (wkhtmltopdf) 的 .css 文件?

我们如何在 .NET 5 控制台应用程序中使用 Autofac + Options 模式?

如何仅在 ASP.NET Core 控制台应用程序中使用服务帐户详细信息发送电子邮件?