我正在使用linq。我的所有查詢都看起來像var query = dc.GetTable<myType>()
。C#泛型和反射
我希望我可以使用字符串參數選擇「myType」。我嘗試使用反射創建一個Type對象,但編譯器不能將Type對象識別爲類定義。
有什麼建議嗎? 謝謝
我正在使用linq。我的所有查詢都看起來像var query = dc.GetTable<myType>()
。C#泛型和反射
我希望我可以使用字符串參數選擇「myType」。我嘗試使用反射創建一個Type對象,但編譯器不能將Type對象識別爲類定義。
有什麼建議嗎? 謝謝
你爲什麼要這樣做? 像現在這樣使用通用方法,可以爲編譯時檢查支持,而不是字符串參數。
有一個GetTable(Type)擴展方法,做你正在尋找什麼:
var query = dc.GetTable(Type.GetType("namespace.type, assembly"));
您可以創建一個查詢實例作爲通用表<>的對象,但它不會在編譯時予以確認。看到Using Type objects as Type Parameters for Generics in C#
這是一個很好的方法,但我設計了一個三層應用程序。他們都使用通用邏輯。我想通過在表示層中使用文本字符串來自定義工作類,並且該信息正在傳播到持久層。 謝謝 – user253501 2010-01-18 21:03:36
@dalbornoz - 您的持久層需要知道從哪個表加載數據。你無法避免這種情況。 – 2010-01-19 06:04:20