0

我们在 VB .Net 2005 中有一个 Web 服务解决方案,我们已经开始遇到错误。我们提供如下界面:

Public Interface IBatchTrackerService
    Function InsertBatchTracker(ByVal BatchTrackerObject As BatchTracker, ByRef errorNum As Integer, ByRef errorMsg As String) As Integer
End Interface

在我们的类中,我们使用以下代码实现此接口。

    Public Class BatchTrackerService
        Implements IBatchTrackerService

        Public Function InsertBatchTracker(ByVal BatchTrackerObject As BusinessObjects.BatchTracker, ByRef errorNum As Integer, ByRef errorMsg As String) As Integer Implements IBatchTrackerService.InsertBatchTracker
           'Some code here'
        End Function
    End Class

此代码工作正常,但现在开始导致错误。我们收到的错误是:

Class 'BatchTrackerService' must implement 'Function InsertBatchTracker(BatchTrackerObject As BusinessObjects.BatchTracker, ByRef errorNum As Integer, ByRef errorMsg As String) As Integer' for interface 'IBatchTrackerService'.  

奇怪的是项目编译正确,但在编译完成后显示许多这些错误。

我们最近安装了 Panda 作为我们的病毒防护,这导致了一个不同的错误,我在这里找到了解决方案。

任何帮助将不胜感激。

谢谢你。

更新于 2009 年 4 月 21 日 11:50
接口和实现都在解决方案的同一个项目中。

更新于 2009 年 4 月 22 日 08:16
我尝试从 BatchTracker 类型前面删除 BusinessObjects 标识符,但我仍然得到同样的结果。这只是整个解决方案中发生的事情的一个例子。此 BatchTrackerService 中的每个实现都被标记为错误,此外还有其他几个服务几乎每个实现都被标记为错误。但不知何故,项目成功构建,是的,它运行正常!
至于 BusinessObjects,它包含许多我们用作参数的类,它只是该解决方案中的另一个项目。我们不引用任何外部程序集来向 BusinessObjects 提供这些类。

更新于 2009 年 4 月 22 日 08:24
我注意到的最后一件事是,任何不使用“BusinessObjects”类作为参数而只是使用字符串、整数等的函数/过程都不会被标记为错误。

2009 年 4 月 22 日 09:50 更新
我尝试恢复到以前的版本,并且能够编译并且错误计数保持为零。我将其范围缩小到签入其中对 BusinessObjects 的引用略有更改的项目文件之一。我只恢复了这个项目文件,现在一切都编译好了。感谢大家带领我朝着正确的方向前进。

4

2 回答 2

0

您的接口指定“BatchTrackerObject”参数为“BatchTracker”类型,但您的实现使用“BusinessObjects.BatchTracker”类型。尝试删除“BusinessObjects”。您的实施中的限定符。

多个程序集是否在 BusinessObjects 命名空间中提供类?

于 2009-04-21T21:10:43.117 回答
0

听起来您正在加载包含 Web 服务和客户端中的界面的不同版本的程序集,导致客户端拒绝 Web 界面实现的签名。确保版本相同,并在必要时对程序集进行强签名。

于 2009-04-21T15:44:11.047 回答