我使用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#的任何遗留物的项目文件。
有什么想法吗?
答案 0 :(得分:1)
在VB.NET中,名称空间声明与项目的默认名称空间相关。因此,如果项目的默认名称空间设置为X.Y,则Namespace Z
和End Namespace
之间的永久名称将位于X.Y.Z名称空间中。
在C#中,无论项目的默认命名空间如何,都必须提供完整的命名空间名称。
因此,如果C#项目具有默认名称空间X.Y,则CS文件仍将包含namespace X.Y
声明。转换为VB后,如果文件中的默认命名空间和命名空间声明保持不变,则最终会在X.Y.X.Y命名空间中使用类。
因此,在您的情况下,Soap类现在位于flightinfo.flightinfo命名空间中。因此,有三种可能的解决方案:
将asmx文件更改为
从项目中删除默认命名空间
答案 1 :(得分:0)
<%@ WebService Class="flightinfo.Soap,flightinfo" %>
你班级的名字是什么?
答案 2 :(得分:0)
问题可能是VB.NET&amp; C#项目使用项目程序集的不同命名约定以及如何使用项目命名空间。至少那是我会开始寻找的。 p>