2009-11-10 143 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