2009-11-10 81 views
1

我努力做到以下几点:C#实例化泛型列表与反射类型信息

  1. 鉴于所属类别反映了LINQ到SQL对象的各种EntitySet的<>子集后,检索收集
  2. 做一些操作上的收集

下面的代码无法编译,很明显 - 只是在寻找另一种方式来做到这一点[注,“门面”,是有问题的L2S对象)。不编译的东西是“项目类型”的用法监守它是一个变量,而不是一个类型的名字,但你的想法:

//itemType is the reflected Type of child object 

EntitySet<itemType> list = (EntitySet<itemType>)type.InvokeMember(
             info.Name, 
             BindingFlags.GetProperty, 
             null, 
             Facade, 
             null); 


foreach (itemType o in list) 
    //do something with o 

最接近的可能欺骗我想出是here,但有并非最终解决方案。

在此先感谢您的任何想法。

回答

0

好了,这个工程:

var list = type.InvokeMember(
          info.Name, 
          BindingFlags.GetProperty, 
          null, 
          Facade, 
          null); 

IEnumerable e = list as IEnumerable; 

if (e == null) 
    continue; 

foreach (object o in e) 
    //do stuff with o