使用反射来获取NetTiers TList,然后如何迭代该列表

时间:2015-03-01 19:34:00

标签: c# reflection datatable .nettiers

下面的代码没有问题,它将抓住我正在寻找的确切TList。但我不知道如何迭代它。

我正在寻找的是如何将我的var dataTableObject转换为DataTable,或者如何迭代var然后使用反射来抓取我正在寻找的特定对象。这意味着我的TList有100个对象,我只想要所有行中100个对象中的2个对象。

Assembly assem = Assembly.LoadFrom(Context.Server.MapPath("~/bin/MyApp.Services.dll"));
Type typMyService = assem.GetType(string.Format(
                 "MyApp.Services.{0}Service", pc[i].RadComboBoxDataSourceTable), true);
object oMyService = Activator.CreateInstance(typMyService);
System.Reflection.MethodInfo objMethod = typMyService.GetMethod("GetAll", Type.EmptyTypes);
var dataTableObject = objMethod.Invoke(oMyService, null);

谢谢!

1 个答案:

答案 0 :(得分:0)

如果GetAll结果类型是DataTable,则可以使用直接强制转换:

DataTable dataTableObject = (DataTable)objMethod.Invoke(oMyService, null);

在这种情况下使用 var 无效,因为编译器确实知道方法签名,因此无法猜测变量类型。