解决方案 »
- 怎样跟踪winform应用程序发送到数据库的sql(oracle、mssql)
- C# Winform程序中后台信息如何在前台实时显示
- 请教C#正则表达式!在线等!
- 求教如何与网页实现交互!
- 有关TMF814 MTMN网管CORBA接口应用开发
- 有南昌的吗?有人知道南昌鼎光 没(散分)
- 全部解决:C#、SMS、AT指令、PDU编码、串口通信、源程序、完全示例、详细说明
- 怎么显示3d图形?
- C#怎么根据Word模板生成一份Word文档
- 怎样查看.NET Framework 封装了哪些Windows API?
- C#里怎么获得一个窗体除了标题栏和边框的内部部分的位置和大小(知道窗体句柄)
- 椭圆文字环排算法求完善
// 这个tableName是从报文里读取的,现在测试,我直接给个名字
string tableName = "BaoHuGuiHua"; // 反射获取表名的Type
Type type = Assembly.Load("Apt.MWSGR.Domain").GetType("Apt.MWSGR.Domain.Entities." + tableName);
// 问题就在这,怎么把BaoHuGuiHua这个实体传到下面的泛型里面去,就是大T那点我应该怎么写?
var exportDataByTableNameQuery = new ExportDataByTableNameQuery<T>(); // 调用方法,获取全部数据
var exportData = exportDataByTableNameQuery.GetAll();
// 这个tableName是从报文里读取的,现在测试,我直接给个名字
string tableName = "BaoHuGuiHua"; // 反射获取表名的Type
Type type = Assembly.Load("Apt.MWSGR.Domain").GetType("Apt.MWSGR.Domain.Entities." + tableName);
// 问题就在这,怎么把BaoHuGuiHua这个实体传到下面的泛型里面去,就是大T那点我应该怎么写?
var exportDataByTableNameQuery = new ExportDataByTableNameQuery<T>(); // 调用方法,获取全部数据
var exportData = exportDataByTableNameQuery.GetAll();
type = typeof(ExportDataByTableNameQuery<>).MakeGenericType(type);
object exportDataByTableNameQuery = Activator.CreateInstance(type);
object exportData = type.GetMethod("GetAll", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, new Type[0], null).Invoke(exportDataByTableNameQuery, null);
嗯,我在我的代码中已经改成var了,这样能获取到正确的数据,你上面提到的换个思路确实可以,我可以在 public class BasicData<T> : ApiController where T:BaseEntity里面为每个实体的公共增加导出功能,这不是为了学习那个Type.MakeGenericType方法,以前写反射都不会用。
您好,那天回复说得到object类型的没怎么注意,现在发现点不出来东西啊。我的exportData返回的是
public IEnumerable<T> GetAll()
{
return this.Session.Query<T>().ToList();
}
现在怎么能把object类型编程IList<T>类型的那,还是那个无法把得到的tableName = "BaoHuGuiHua";这个变量传到IList的那个变量里面啊,求指教?
我做到现在发现你这句话的意思了,我变成var得到的也是objectl类型,现在就是苦恼怎么把得到的exportData便诶IList<T>的类型那,大T还是传不进去啊