我正在使用結構圖自動將DataContext注入到我的Repository構造函數中。我給了一個名字(例如「Project1」),我需要爲項目動態創建一個Repository實例。使用反射和結構圖
我使用標準的命名約定,所以我知道它是「Project1DataContext」。我設法使用反射來創建我的Project1DataContext的一個實例,但它是一個對象類型。問題是我需要將一個Project1DataContext對象傳遞到我的Repository中以創建它的一個實例。我如何使用反射來做到這一點?是否有可能通過某種方式投射物體?
Assembly myDataContextAssembly = typeof(SomeTypeInTheAssembly).Assembly;
Type dataContextType = myDataContextAssembly.GetType(ProjectName + "DataContext");
object dataContext = Activator.CreateInstance(dataContextType);
// I need to cast the data context here
IRepository<Project1DataContext> = new Repository<Project1DataContext>(dataContext)
在平均時間,我將使用if語句,但這不是一個可行的解決方案,如果我有100多個項目。我需要使用反射和理想情況下有結構圖確定類型併爲我注入它們。
你能舉出一個或兩個if語句嗎?這會讓你更容易看到你想要解決的問題。 – Clafou 2012-01-16 22:54:09