【问题标题】:<type1>'<typename>' must implement '<membername>' for interface '<interfacename>'<type1>'<typename>' 必须为接口 '<interfacename>' 实现 '<membername>'
【发布时间】:2009-04-21 15:40:35
【问题描述】:

我们在 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 的引用略有更改的项目文件之一。我只恢复了这个项目文件,现在一切都编译好了。感谢大家带领我朝着正确的方向前进。

【问题讨论】:

  • 接口和实现都在Web服务的同一个项目中。

标签: vb.net web-services implementation


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2019-09-13
      • 2011-10-26
      • 1970-01-01
      相关资源
      最近更新 更多