2008-09-12 43 views
1

我用C#寫了一個簡單的Web服務使用SharpDevelop(我剛剛和我喜歡)。「無法加載類型」在Web服務轉換爲VB.NET

客戶端需要它在VB中,幸運的是有一個轉換爲VB.NET功能。這很棒。翻譯所有的代碼,並構建。 (我一直是一個「記事本」的人,很長一段時間,所以我可能看起來有點過時。)

但是我現在嘗試加載服務時出現此錯誤。

 
Parser Error Message: Could not load type 'flightinfo.Soap' from assembly 'flightinfo'. 

Source Error: 

Line 1: <%@ WebService Class="flightinfo.Soap,flightinfo" %> 

我刪除了垃圾箱並重建,並且我搜索了google(和stackoverflow)。我已經搜索了C#的任何殘餘項目文件。

任何想法?

回答

1

在VB.NET中,名稱空間聲明與項目的默認名稱空間相關。因此,如果項目的默認名稱空間設置爲X.Y,則在Namespace ZEnd Namespace之間的任何位置都將位於X.Y.Z命名空間中。 在C#中,無論項目的默認名稱空間如何,您都必須提供完整的名稱空間名稱。 因此,如果C#項目具有默認名稱空間X.Y,則CS文件仍將包含namespace X.Y聲明。轉換爲VB後,如果文件中的默認命名空間和命名空間聲明都保持不變,則最終將在X.Y.X.Y命名空間中生成類。 因此,在您的情況下,Soap類現在位於flightinfo.flightinfo名稱空間中。因此,有三種可能的解決方案:

  • 變化ASMX文件

  • 從項目

  • 刪除默認命名空間從VB文件中刪除命名空間聲明
0
<%@ WebService Class="flightinfo.Soap,flightinfo" %> 

你班上的名字是什麼?

+0

flightInfo.Soap - 與之前相同。這實際上是由Web服務模板生成的。 – harpo 2008-09-12 22:47:54

+0

而組件仍然是flightInfo? – FlySwat 2008-09-12 22:57:13

0

這個問題可能是由VB.NET導致的& C#項目對項目程序集使用不同的命名約定以及如何使用項目命名空間。至少這是我會開始尋找。

相關問題