Учитывая следующее: -2 типа, которые представляют собой замкнутый общий тип IQueryHandler
public abstract class PriceBookDataViewModelQuery : IQuery<PriceBookDataViewModel>
{
public bool IsRenewal { get; set; }
public string Postcode { get; set; }
}
public class PriceBookDataSseElecViewModelQuery : PriceBookDataViewModelQuery
{
}
public class PriceBookDataSseGasViewModelQuery : PriceBookDataViewModelQuery
{
}
public interface IQueryHandler<in TQuery, out TResult> where TQuery : IQuery<TResult>
{
TResult Handle(TQuery query);
}
и в моем контейнере конфигурации у меня есть
Container.RegisterManyForOpenGeneric(
typeof(IQueryHandler<,>), typeof(IQueryHandler<,>).Assembly);
Мои обработчики запросов являются: -
public class PriceBookDataSseElecViewModelHandler :
IQueryHandler<PriceBookDataViewModelQuery, PriceBookDataViewModel>
public class PriceBookDataSseGasViewModelHandler :
IQueryHandler<PriceBookDataViewModelQuery, PriceBookDataViewModel>
Я получаю сообщение об ошибке:
Существует 2 типа, которые представляют закрытый тип типа IQueryHandler. Типы: PriceBookDataSseElecViewModelHandler и PriceBookDataSseGasViewModelHandler. Либо удалите один из типов или использовать перегрузку, которая принимает BatchRegistrationCallback делегат
Я понимаю, почему это происходит, когда у меня есть два типа, которые наследуют от того же IQueryHandler. Однако в конечном итоге у меня будет около 20 из этих запросов, которые будут содержать те же свойства, которые стремятся оставаться сухими.
Какие параметры у меня есть, кроме дублирования свойств в 20 классах запросов? Как использовать BatchRegistrationCallback
в моем сценарии?
Что произойдет, если вы переместите ссылку интерфейса IQuery 'для каждого подкласса? –
Will
Просьба показать обработчики запросов. – Steven
Добавлены обработчики запросов – Rippo