特定成员基本类型的调用方法

时间:2018-09-27 13:42:58

标签: c# .net inheritance reflection

在调用这些类时遇到问题:

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(),因为它是该成员的基本类型中声明的内容。

您能启发我如何做以及为什么酸味解决方案有效吗?

谢谢!

0 个答案:

没有答案