db.sd.Where("it.fr>0").Take(1).Single();是可以正确执行的
现在怎样用反射的方法执行Single()方法? var db = new Entities1()
object sd = db.sd;..... if (db != null)
{
MethodInfo miWhere = db.PropertyType.GetMethod("Where", BindingFlags.Public | BindingFlags.Instance); //能正确反射出Where
if (miWhere != null) //Where方法不为空继续反射Take,Single
{
var wh = miWhere.Invoke(sd, new object[] { "it.fr>0", new System.Data.Objects.ObjectParameter[] { } }); //Where("it.fr>0")
下面如何反射出Take(1).Single()方法?
}
}
现在怎样用反射的方法执行Single()方法? var db = new Entities1()
object sd = db.sd;..... if (db != null)
{
MethodInfo miWhere = db.PropertyType.GetMethod("Where", BindingFlags.Public | BindingFlags.Instance); //能正确反射出Where
if (miWhere != null) //Where方法不为空继续反射Take,Single
{
var wh = miWhere.Invoke(sd, new object[] { "it.fr>0", new System.Data.Objects.ObjectParameter[] { } }); //Where("it.fr>0")
下面如何反射出Take(1).Single()方法?
}
}
解决方案 »
- 文件打包问题
- Aspose.Cells excel模板的制作问题
- c#中如何将数据库中一个表的某列显示在组合框控件的下拉菜单中?
- 错误 1 验证 (Internet Explorer 6): 元素“p”不能嵌套在元素“table”中,问题
- [=============]C#里 Convert.ToSingle(string) 和 vb.net里Val(string)的区别!!
- 怎样右击DataGridView行时,选中这行的数据啊?
- Crystalreport怎么在最后一页的页码后面加字
- 哪里有数据库的源代码软件
- 系统级事物控制
- c#学习笔记--集合的几种实现方式
- C#显示mysql查询结果出现System.Byte[]
- 求助,关于connectionstring的头疼问题。
反射,这个不会,顶一下
var takeMethod = typeof(System.Linq.Queryable).GetMethod("Take", ...);
因为可能会有多种重载,所以应该设置一些参数来返回你要的那个。
if (miWhere != null) //Where方法不为空继续反射Take,Single
{
var wh = miWhere.Invoke(sd, new object[] { "it.fr>0", new System.Data.Objects.ObjectParameter[] { } }); //执行Where
var takeMethod = typeof(System.Linq.Queryable).GetMethod("Take"); //获取Take
wh.TakeMethod.Invoke( =>想调用sd.Where("it.fr>0").Take方法,结果发现没有Invoke这个方法,要怎么写才对?
var takeMethod = typeof(System.Linq.Queryable).GetMethod("Take"); =>获取Take方法
var takeValue=takeMethod.Invoke(wh, new object[] { 0 }); =>执行Take方法
报错:不能对 ContainsGenericParameters 为 True 的类型或方法执行后期绑定操作
var takeValue = takeMethod.Invoke(wh, new object[] { sd, 0 }); var singleMethod = typeof(System.Linq.Queryable).GetMethod("Single",new Type[0]);==>这里一真为NULL,要怎么修改才正确 调用Single方法
var singleValue = singleMethod.Invoke(takeValue, null);
帮我看一下啊,还有最后一个Single()没有反射成功