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){
}
} 展开
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){
}
} 展开
1个回答
展开全部
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 });//调反返回结果
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询