Я пытаюсь выяснить способ абстрагирования логики адаптера. Я хочу иметь класс Generic Abstract, который наследует элемент, переданный в него.Generic Abstract class, который наследует участников от параметра Passed Type
public interface IAdaptable<in TIEntity, in TIDTO, TDTO>
where TDTO : TIDTO
{
void Initialize(TIEntity entity);
TDTO ToDTO();
}
public interface IAdaptable<in TIEntity, TDTO> : IAdaptable<TIEntity, TDTO, TDTO>
{
}
public abstract class AdapterBase<TEntity, TIDTO, TDTO> : IAdaptable<TEntity, TIDTO, TDTO>, TIDTO
where TDTO : TIDTO
{
protected TEntity entity;
public void Initialize(TEntity entity)
{
this.entity = entity;
}
public TDTO ToDTO()
{
return Mapper.Map<TIDTO, TDTO>(this);
}
}
Этот код не работает, потому что вы не можете наследовать от общего параметра Я прошел в, даже если идентификатор, как мой родительский класс для обеспечения его.
Incase Любой интересуется, почему или что здесь происходит, эта база адаптера применяется к адаптеру, который должен реализовать свойства интерфейса DTO, затем для геттеров и настроек применяется дополнительная логика, чтобы предотвратить подделку идентификатора и сделать некоторая базовая логика установки.
Этот код отлично работает, если я применяю его вручную для каждого адаптера, но id предпочитает базу адаптера или прокси-сервер для базы адаптера, которая будет обрабатывать всю эту логику для меня.
Кто-нибудь знает, как я могу абстрагироваться от этой логики или работать, поэтому мне не нужно вручную применять эту логику к каждому адаптеру?
Я считаю, что динамические прокси-серверы замка - единственный способ достичь этого, но я могу ошибаться. – inquisitive
@inquisitive спасибо за отзыв Я буду исследовать, что это такое –
Вы уверены, что это опечатка: 'public abstract class AdapterBase: IAdaptable TIDTO' последний' TIDTO' –
CodingYoshi