2008-12-26 71 views
0

我有一個在App_Code文件夾中聲明的類。該類包含一個返回類型投資組合的公共共享方法。

當我嘗試調用此方法在ASCX控件之一中初始化類型爲Portfolio的對象時,我收到「Jaguar.Portfolio類型的值無法轉換爲Jaguar.Portfolio」消息。

這是一個「網站」項目。我嘗試過使用CType和DirectCast,當我嘗試構建網站時,仍然收到相同的編譯錯誤。

我正在使用的代碼下面列出背後的ascx控件
在ASP.NET中投射錯誤

 
Dim pObjSvc As Jaguar.Portfolio = ClassName.GetPortfolio

回答

2

的文件,你有一個網頁或用戶控制也被稱爲投資組合的代碼行?您可能會遇到名稱空間衝突,它會在要使用哪個Portfolio對象之間混淆。如果是這種情況,您需要更改類/模塊的名稱或控件或頁面的代碼,並且應該全部設置。

+0

我不認爲我這樣做,否則它不會顯示編譯錯誤消息,它會在作業的兩側顯示相同的「類型」 – Developer 2008-12-26 15:38:53

+0

當您期待時,它可能不會顯示編譯錯誤。快速文件搜索會告訴。 – StingyJack 2008-12-26 15:43:00

0

只是一個調試提示:

嘗試重命名投資組合類並重新編譯。也許在某個地方有一箇舊程序集或.vb文件中包含一個具有相同名稱的類的其他代碼?

1

似乎有被別人同樣的問題在那裏:

ASP Net - value of type "MyNamespace.MyClassName" cannot be converted to "MyNamespace.MyClassName"

I have a ASP.Net application that uses assemblies from several other solutions. When testing the applications on my machine I build all the referenced assemblies using nmake. The latest assemblies get placed in a common directory that is referenced by my ASP.NET app.

Occasionally I receive the following error: value of type "MyNamespace.MyClassName" cannot be converted to "MyNamespace.MyClassName" (there are a lot of these for different classes) when doing a debug build. I have tried the following with no luck:

Build the ASP.Net application Rebuild the ASP.Net application Close VS and build the ASP.Net application Close VS.Net as rebuild the asp.Net application IISreset and build/rebuild the application

It seems the only thing that works is if I run nmake to build all my referenced assemblies, I can then build the ASP.Net application.

Any ideas as to what causes this? Is there an easier way to fix it?

可悲的是,這個問題筆者確實不找到一個明確的答案。但也許它包含一個提示,可能有助於找到解決方案。

更新:我不確定這是甚至可能在ASP.NET網站,但也許你不小心添加了一個項目本身(臨時)組裝的引用?這將解釋錯誤。也嘗試刪除bin和obj文件夾的內容。

0

當一個aspx頁面與業務對象類同名創建時,我看到類似於這種情況。你是否還有一些aspx頁面,還有一個代碼隱藏類的Portfolio?