2013-07-08 76 views
0

我遇到以下異常:Activator.CreateInstance拋出一個「關鍵字,不支持」異常

keyword not supported: 'name'. 

它是由下面的代碼二號線造成的:

var attr = (ContextAttribute)Attribute.GetCustomAttributes(typeof (TEntity),typeof (ContextAttribute)).FirstOrDefault(); 
context = (DbContext)Activator.CreateInstance(attr.ContextType); 

ATTR。 ContextType是一個Type並且不爲null。在由attr.ContextType表示的類內部,我注意到「Name」是該類的一個屬性,但已被註釋掉。我不知道這是不是一個紅鯡魚 - 我注意到這個錯誤非常明確地提到小寫字母的名稱,但是當它沒有被註釋掉時,該屬性是一個首都。

該代碼的目的是從UnitOfWork加載存儲庫,如果這很重要。

此外,萬一它很重要,我沒有寫這個代碼,所以它可能是明顯的東西。我對這部分代碼中使用的EntityFramework和依賴注入並不太熟悉。我只是碰巧依靠這段代碼正確工作,以便我的代碼得到執行。

+0

attr.ContextType是一個類型還是字符串? –

+0

對不起,我在描述代碼時混淆不清。 attr.ContextType是一個Type。我會更新這個問題,以便更清楚。 – REW

+0

現在已經修復。編寫代碼的人向我展示了一些修改我的web.config的自定義配置生成器。它沒有真正回答關於什麼可能導致「不支持關鍵字」錯誤的問題,但在我的情況下,顯然它與web.config有關。 – REW

回答

相關問題