Как добавить синглтон в класс запуска с помощью возвращаемого значения метода Factory - PullRequest
2 голосов
/ 04 августа 2020

Я пытаюсь использовать DI add в своем классе запуска Singleton. Я хотел бы, чтобы на основе processorStringName , который поступает из appSettings и Factory class, был добавлен правильный процессор? Можно ли сделать это красиво?

 IProcessor processor = ProcessorFactory.CreateProcessor(Configuration, processorStringName);
 services.AddSingleton<IProcessor, processor>();

1 Ответ

5 голосов
/ 04 августа 2020
services.AddSingleton<IProcessor, processor>();

Это не сработает, потому что processor - это имя переменной, а не имя типа.

Просмотрите перегрузки для AddSingleton.

Вместо этого вы хотите:

services.AddSingleton<IProcessor>( implementationInstance: processor );

Или это:

services.AddSingleton<IProcessor>( implementationFactory: sp => processor );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...