C# 泛型方法调用疑问

classservice{List<T>findList<T>(Queryquery){Typetype=typeof(T);type.GetProperties().T... class service{
List<T> findList<T>(Query query){
Type type=typeof(T);
type.GetProperties().ToList().ForEach(c =>
{

if (c.PropertyType.IsSubclassOf(typeof(IModel)))
{
//这个属性是继承于IModel这个类的

//如果我想将这个属性的对象值再调用 findOne进行对象查找应该怎么写呢?
//具体来说就是我只知道c.PropertyType 怎么根据Type 调用findOne

}
});
}
T findOne<T>(Query query){
}

}
展开
 我来答
超大蒲公英
推荐于2016-06-19 · TA获得超过741个赞
知道小有建树答主
回答量:758
采纳率:75%
帮助的人:741万
展开全部
if (c.PropertyType.IsSubclassOf(typeof(IModel)))
                {
                    //这个属性是继承于IModel这个类的
 
                    //如果我想将这个属性的对象值再调用 findOne进行对象查找应该怎么写呢?  
                    //具体来说就是我只知道c.PropertyType 怎么根据Type 调用findOne
                    MethodInfo method = this.GetType().GetMethod("findOne", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);//找到方法
                    method = method.MakeGenericMethod(new Type[] { c.PropertyType });//参泛型赋值
                    object result = method.Invoke(this, new object[] { query });//调反返回结果
                }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式