只使用.NET 3.5,我有樣品等級:實例化類型編譯已知類型的IEnumerable的反射
public class Table1
{
public IEnumerable<Table2> Items { get; set; }
}
它是一種ORM的,我需要通過一個懶惰的計算類型
我兌現集合試圖找到辦法通過例如List<Table2>
當我被激活創建實例分配財產項目, 例如,它返回對象,我不能轉換爲所需ŧ YPE
var t = typeof(List<>);
var gt = t.MakeGenericType(typeof(Table2));
object instance = Activator.CreateInstance(gt);
var table1 = new Table1();
table1.Items = instance; //canot use cast here
,並指定 '對象' 變量類型的IEnumerable
它是如何工作的最OR-mapers問題?
我可以使用Reflection.Emit的生成具體的類型?
我可以用Castle/Linfu嗎?
編輯:
我canot使用任何直接鑄造的,因爲它需要參考表2 這是我不能harcode
SOLUTION:
一段時間後,我發現溶液自己。它需要用反射的集合例如:
var table1 = new Table1();
var table1Type = typeof(Table1);
var prop = table1Type.GetProperty("Items");
prop.SetValue(table1, instance, null);
「這我不能轉換爲所需類型」 - 爲什麼不呢? –
奧斯汀薩洛寧,看到編輯 – devi