Внедрение универсального интерфейса в неуниверсальный класс-концентратор - PullRequest
0 голосов
/ 06 сентября 2018


У меня есть общий интерфейс:

public interface IExceptionsDistinguisherService<T> where T : class
{
    void CheckNullAction(T action);
}

Я хотел бы добавить его в неуниверсальный класс-концентратор:

public class ActionHub : IActionHub
{
    //some fields declarations
    private readonly IExceptionsDistinguisherService<T> _exceptionsDistinguisherService;

    public ActionHub(/*other parameters,*/
    IExceptionsDistinguisherService<T> exceptionsDistinguisherService;
    )
    {
        //...
        _exceptionsDistinguisherService = exceptionsDistinguisherService;
    }

    public Result<TOutput> Execute<TAction, TOutput>(TAction action)
    {
        _exceptionsDistinguisherService.CheckNullAction(action);
        //... other stuff
    }
    //... other stuff
}

Проблема в том, что каждое примерное решение, которое я нашел, основано на предопределенном классе, который используется как свойство во время внедрения.
В моем случае было намерение определить класс впоследствии в каждом отдельном обработчике , однако я застрял здесь. Если это дубликат, я был бы признателен, если бы вы могли показать мне тему, потому что, очевидно, я не задаю правильные вопросы

У меня закончились идеи, как правильно ввести этот интерфейс, и я с радостью воспользуюсь некоторой помощью .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...