У меня есть базовый класс презентаторов:
public abstract class PresenterBase<T> where T : IView
{
//Some code
}
Конкретный класс презентаторов, который реализует эту базу:
public class RegistrationPresenter : PresenterBase<IRegistration>
{
//Some Code
}
Конкретная фабрика презентаторов, которая возвращает экземпляр презентатора, который зависитв конкретном интерфейсе контракта:
public class ProductPresenterFactory : PresenterFactoryBase
{
// Some code
public override PresenterBase<IView> GetPresenter(IView view, string name = "")
{
if (view == null && string.IsNullOrEmpty(name))
throw new ArgumentNullException();
return presenter;
}
}
Мне нужно реализовать метод GetPresenter
.Пользователь поместит интерфейсный контракт, например, типа IRegistration
в вышеупомянутом случае.Этот метод должен выяснить класс, который реализует PresenterBase<IRegistration>
и вернуть экземпляр.