1

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

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

但是当我现在尝试加载服务时出现此错误。

解析器错误消息:无法从程序集“flightinfo”加载类型“flightinfo.Soap”。

源错误:

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

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

有任何想法吗?

4

3 回答 3

1

在 VB.NET 中,命名空间声明与项目的默认命名空间相关。因此,如果项目的默认命名空间设置为 XY,则介于Namespace Z和之间的一切End Namespace都将位于 XYZ 命名空间中。在 C# 中,您必须提供完整的命名空间名称,而不考虑项目的默认命名空间。因此,如果 C# 项目具有默认命名空间 XY,则 CS 文件仍将包含namespace X.Y声明。转换为 VB 后,如果文件中的默认命名空间和命名空间声明保持不变,您最终会得到 XYXY 命名空间中的类。因此,在您的情况下,Soap 类现在位于 flightinfo.flightinfo 命名空间中。因此,有三种可能的解决方案:

  • 将 asmx 文件更改为

  • 从项目中删除默认命名空间

  • 从 vb 文件中删除命名空间声明
于 2008-10-14T13:11:31.630 回答
0
<%@ WebService Class="flightinfo.Soap,flightinfo" %>

你的班级叫什么名字?

于 2008-09-12T22:44:47.730 回答
0

该问题可能是由 VB.NET 和 C# 项目对项目程序集使用不同的命名约定以及项目命名空间的使用方式引起的。至少那是我会开始寻找的。

于 2008-09-16T13:20:50.953 回答