Как я могу использовать Microsoft.Extensions.DependencyInjection в приложении .Net Core Console? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть библиотека, которую я хотел бы запустить на всех платформах, поддерживаемых .NET Core (Xamarin, Windows, Mac).И для этого мне нужен межплатформенный DI для обработки специфических для платформы настроек, таких как хранилище, безопасность и т. Д.

Все примеры, которые я видел для Microsoft.Extensions.DependencyInjection, включают код для ASP.NETядро.Существует ли какой-либо эквивалентный / поддерживаемый сценарий для консольного приложения?

В качестве альтернативы (в идеале) я хотел бы, чтобы структура DI, используемая для консоли, работала для ASP.NET Core, Xamarin и Win32

Пример ошибки

Я использую этот код в качестве основы для моего приложения .NET Core.Похоже, что ServiceCollection должна быть общедоступной, но когда я использую Xamarin на Mac, стандартная реализация IServiceCollection (ServiceCollection) отсутствует:

enter image description here

1 Ответ

0 голосов
/ 19 декабря 2018

Я использую его в основном так:

Установить 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();
        }
    }
...