<type1>'<typename>'必须为接口'<interfacename>'</interfacename> </membername> </typename> </type1>实现'<membername>'

时间:2009-04-21 15:40:35

标签: vb.net web-services implementation

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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