2010-01-18 159 views
2

我正在使用linq。我的所有查詢都看起來像var query = dc.GetTable<myType>()C#泛型和反射

我希望我可以使用字符串參數選擇「myType」。我嘗試使用反射創建一個Type對象,但編譯器不能將Type對象識別爲類定義。

有什麼建議嗎? 謝謝

回答

1

你爲什麼要這樣做? 像現在這樣使用通用方法,可以爲編譯時檢查支持,而不是字符串參數。

5

有一個GetTable(Type)擴展方法,做你正在尋找什麼:

var query = dc.GetTable(Type.GetType("namespace.type, assembly")); 
+0

這是一個很好的方法,但我設計了一個三層應用程序。他們都使用通用邏輯。我想通過在表示層中使用文本字符串來自定義工作類,並且該信息正在傳播到持久層。 謝謝 – user253501 2010-01-18 21:03:36

+0

@dalbornoz - 您的持久層需要知道從哪個表加載數據。你無法避免這種情況。 – 2010-01-19 06:04:20