В настоящее время я пытаюсь добиться следующего:
У меня есть интерфейс с этим интерфейсом:
public interface IRepository<TEntity>
{
//Some Methods
}
Затем у меня есть другой интерфейс, который расширяет тот, что указан выше:
public interface IAttractionRepository : IRepository<Attraction>
{
//More methods
}
Наконец, у меня есть реализация (которая также реализует другие интерфейсы):
public class AttractionRepository : ISomethingElse, IAnotherSomethingElse, IAttractionRepository
{
//Implementations and methods
}
То, что я пытаюсь достичь, это: Предоставленный тип AttractionRepository, я хочу найти его интерфейсы и получить какойрасширяет интерфейс IRepository.
Мой код выглядит следующим образом:
Type[] interfaces = typeof(AttractionRepository).GetInterfaces(); //I get three interfaces here, which is fine.
Type iface = null;
foreach (Type t in interfaces) //Iterate through all interfaces
foreach(Type t1 in t.GetInterfaces()) //For each of the interfaces an interface is extending, I want to know if there's any interface that is "IRepository<Attraction>"
if (t1.IsSubclassOf(typeof(IRepository<>).MakeGenericType(typeof(Attraction)))) //Always false
iface = t;
Я пробовал несколько других решений, но безуспешно.