0
繼承成員,我試圖找出一種方法來抽象我的適配器邏輯。我想要有一個通用抽象類繼承自傳入它的成員。通用抽象類誰從傳遞類型參數
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);
}
}
此代碼不起作用,因爲您不能繼承傳入的泛型參數,即使id像我的父類一樣強制執行它。
因爲任何人想知道爲什麼或者這裏發生了什麼,這個適配器基礎被應用到必須實現DTO接口屬性的適配器上,然後額外的邏輯被應用到獲取器並設置以防止id篡改並且執行一些基本的設置邏輯。如果我手動將其應用到每個適配器,但ID喜歡適配器底座或代理的適配器基地將處理所有這個邏輯我
此代碼工作正常。
有誰知道的一種方法,我可以抽象這個邏輯,或解決,所以我沒有這樣的邏輯手動適用於每個適配器?
我相信城堡動態代理是實現這一目標的唯一途徑,但我可能是錯的。 – inquisitive
@inquisitive謝謝你的提示,我將調查那些是什麼 –
你肯定這還是它的一個錯字:'公共抽象類AdapterBase:IAdaptable的 TIDTO'最後'TIDTO' –
CodingYoshi