转换为VB.NET的Web服务中的“无法加载类型”

时间:2008-09-12 22:38:38

标签: c# vb.net web-services translation sharpdevelop

我使用SharpDevelop在C#中编写了一个简单的Web服务(我刚刚得到并且我喜欢)。

客户端想要它在VB中,幸运的是有一个转换为VB.NET功能。这很棒。翻译所有代码,并构建。 (我长期以来一直是个“记事本”家伙,所以我看起来有点过时了。)

但是当我尝试加载服务时,我收到此错误。

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

Source Error:

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

我删除了垃圾箱并重建了,我搜索了谷歌(和stackoverflow)。我已经搜索了C#的任何遗留物的项目文件。

有什么想法吗?

3 个答案:

答案 0 :(得分: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文件中删除命名空间声明

答案 1 :(得分:0)

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

你班级的名字是什么?

答案 2 :(得分:0)

问题可能是VB.NET&amp; C#项目使用项目程序集的不同命名约定以及如何使用项目命名空间。至少那是我会开始寻找的。