2010-01-18 39 views
0
類型化

我的錯誤代碼:asp.net得到強烈的字符串

當然
string model = "Content"; 
Type stype = Type.GetType("mvc.Models." + model); 
ViewPage<stype> vp = new ViewPage<stype>(); 

的編制時,它的錯誤,但它清楚地表明我在想什麼。我可以這樣做嗎?

+0

呃,我在這裏看到的代碼,不是一個錯誤代碼... – terR0Q 2010-01-18 07:25:40

+0

我不能編譯它,所以它錯誤或不? 錯誤無法找到類型或名稱空間名稱'stype'(您是否缺少使用指令或程序集引用?) – complez 2010-01-18 07:31:58

+0

好吧,閱讀您的代碼,您確定有'mvc.Models.Content'鍵入您的項目中可用? – terR0Q 2010-01-18 07:36:22

回答

2

該函數GetType需要一個assembly-qualified name,而不僅僅是您提供的名稱空間。

+0

我不這麼認爲,因爲我可以做到這一點沒有錯誤 Models.Content c =(Models.Content)Type.GetType(「mvc.Models.RSSContent」)。InvokeMember(「 ,BindingFlags.CreateInstance,null,null,null); RSSContent繼承自內容 – complez 2010-01-18 08:01:01

+0

我不確定,但您所要做的事可能超出了語言結構的範圍。看起來,當你從字面上對Type進行編碼時,無論是作爲類型dec還是顯式轉換,它似乎都可以工作。我懷疑編譯器不喜歡定義一個來自運行時評估類型變量的顯式類型,這就是爲什麼你得到構建消息。 – 2010-01-23 06:33:51