作者:忆--______100 | 来源:互联网 | 2022-11-24 17:23
如何解决《如何在.NETCore控制台应用程序中使用Microsoft.Extensions.DependencyInjection?》经验,为你挑选了1个好方法。
我有一个要在.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)的默认实现:
1> zaitsman..:
我基本上像这样使用它:
安装nuget Microsoft.Extensions.DependencyInjection
然后在Program.cs中
using Microsoft.Extensions.DependencyInjection;
public class Program
{
public static void Main(string[] args)
{
var services = new ServiceCollection()
.AddSingleton(new WhateverType());
var serviceProvider = services.BuildServiceProvider();
serviceProvider.GetService().DoWork();
}
}