Зарегистрируйте C# Dep Injection для универсальной фабрикиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Зарегистрируйте C# Dep Injection для универсальной фабрики

Сообщение Anonymous »

Я пытаюсь зарегистрировать фабрику, которая может генерировать вещи, и сделать это так, чтобы я мог запросить наиболее абстрактную версию этого с помощью DI, а затем при регистрации решить, какие комбинации вещей будут фактически использоваться.Код:

Код: Выделить всё

// The thing

public interface IThing
{
void DoSomething();
}

public class ThingA : IThing
{
public void DoSomething() => throw new NotImplementedException();
}

public class ThingB : IThing
{
public void DoSomething() => throw new NotImplementedException();
}

// The factory

public interface IThingFactory where TThing : IThing
{
TThing CreateThing();
}

public class MyThingFactory : IThingFactory where TThing : IThing
{
public TThing CreateThing() => throw new NotImplementedException();
}
Если я зарегистрируюсь и буду использовать их следующим образом, это сработает:

Код: Выделить всё

Services.AddSingleton();
...
var factory = ServiceProvider.GetRequiredService();
// factory is a MyThingFactory
Что я действительно хочу сделать, так это зарегистрировать вещи, чтобы я мог запросить IThingFactory, но, например, следующее определение не скомпилируется:

Код: Выделить всё

Services.AddSingleton();
с

Тип MyThingFactory не может использоваться в качестве параметра типа
TImplementation в универсальный тип или метод
'ServiceCollectionServiceExtensions.AddSingleton(IServiceCollection)'. Неявной ссылки
преобразования из MyThingFactory в IThingFactory нет

Непонятно, как это зарегистрировать.

Подробнее здесь: https://stackoverflow.com/questions/783 ... ic-factory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сделать класс фабрики статическим в шаблоне проектирования фабрики?
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как сделать класс фабрики статическим в шаблоне проектирования фабрики?
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как сделать класс фабрики статическим в шаблоне проектирования фабрики?
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как сделать класс фабрики статическим в шаблоне проектирования фабрики?
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как сделать класс фабрики статическим в шаблоне проектирования фабрики?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»