2012-09-05 35 views
2

我正在做一個項目,在ASP.NET Web應用程序中。我無法將對象轉換爲接口。這是我的代碼:無法將類型的Exam_Mapper投射到IMapper類型

str2 = myXmlTextReader.ReadInnerXml(); 
Type myTypeObj = testAssembly.GetType(str2); 
Object obj = Activator.CreateInstance(myTypeObj); 
Imapper EM = (Imapper)obj; 

在Windows窗體應用程序中,我沒有任何問題。還有下面的代碼返回空值:

Imapper EM = obj as Imapper; 
+1

也許'myTypeObj'類型只是不實現'Imapper'? – sloth

回答

2

Exam_Mapper類型需要爲了工作代碼來實現IMapper。它顯然沒有。無論是你還是你有兩種類型,IMapperImapper(你在你的問題中使用了兩個名字;可能的錯字),而你卻混淆了兩者。

更新試試這個簡單的例子,看看它是否工作:

interface ITest { } 
class Test : ITest { } 
//in a method 
Object obj = new Test(); 
ITest test = (ITest)obj; 

現在比較您的情況。有什麼不同?

+0

謝謝你的回答。但在我的項目中Exam_Mapper實現了Imapper,並且Imapper在所有項目中都是Imapper no IMapper。 –

+0

使用調試器逐步完成,看看你的代碼不在做你期望的。例如。是myTypeObj獲取你的類型? obj是一個實例還是null? –

+0

yes.myTypeObj獲取類型,而obj是一個實例,但是當我使用Imapper EM =(Imapper)obj;出現此錯誤,「無法將obj轉換爲Imapper」,以及當我使用「Imapper EM = obj作爲Imapper;」時EM返回空值。 –

相關問題