有沒有辦法創建一個實現以下兩個通用接口的基類?然後這個基類將被可以從兩個接口中的任何一個調用方法的「其他」類繼承。創建實現兩個通用接口的通用基類?
public interface IGenericRepositoryOne<E> where E : Entity
{
void Save(E entity);
void Save(List<E> entityList);
E Load(Guid entityId);
}
public interface IGenericRepositoryTwo<D, E> where E : Entity
{
void Save(D dto);
void Save(List<D> entityList);
D Load(Guid entityId);
}
現在我們有單獨實現每個接口的兩個不同的版本庫:
public abstract class RepositoryOne<D, E> : IGenericRepositoryOne<D, E> where E : Entity {...}
public abstract class RepositoryTWO<E> : IGenericRepositoryTwo<E> where E : Entity {...}
然後有哪些需要繼承的類要麼RepositoryOne
或RepositoryTwo
。正是在這些培訓班裏,我希望做一些保理,例如:
public class MessageDataTypeRepository : RepositoryTwo<MyEntityType>
{
// here when I call the method Load() I want it for RepositoryOne implementation.
}
public class MessageDataTypeRepository : RepositoryOne<MyDTOType, MyEntityType>
{
// here when I call the method Load() I want it for the RepositoryTwo implementation.
}
你肯定的在第二個?我在成員名單中看不到E。 –
2013-03-22 19:17:12
除此之外,嘗試實現這兩個接口時遇到了什麼錯誤?它在哪裏給你帶來麻煩? – 2013-03-22 19:20:19
@AnthonyPegram:是的,我需要'E'也是因爲還有其他操作使用它,爲簡潔起見,以上略去。我更新了我的問題,進一步闡明瞭我期待的目標。 – VoodooChild 2013-03-22 20:09:11