У меня проблема с вызовом этих классов:
public class Container
{
IARepo a = new ARepo();
IBRepo b = new BRepo();
ICRepo c = new CRepo();
}
public class ARepo:Repo<ABase>, IARepo
{
}
public interface IARepo: IRepo<ABase>
{
}
public interface IRepo<T>
{
GetAll();
}
public class Repo<T> : IRepo<T>
{
GetAll();
}
Мне нужно перебрать a, b и c, чтобы найти определенный член контейнера и вызвать GetAll () с помощью отражений на нем.
На данный момент я делаю:
PropertyInfo[] properties = typeof(container).GetProperties();
foreach (PropertyInfo property in properties)
{
if (property.Name.Equals(NAME OF REPOSITORY))
{
//Access GetAll() for the specified property
}
}
Используя MethodInfo
Я не могу получить доступ к GetAll()
, так как он объявлен в базовом типе члена.
Не могли бы вы рассказать мне, как это сделать и почему работает кислое решение?
Заранее спасибо!