2009-04-21 15 views
0

Nous avons une solution de service Web en VB .Net 2005 que nous avons commencé à obtenir une erreur Nous fournissons une interface comme ce qui suit:.<type1> '<typename>' doit mettre en œuvre '<membername>' pour l'interface '<interfacename>'

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

Dans notre classe, nous implémentons cette interface avec le code suivant.

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 

Ce code fonctionnait correctement mais a commencé à provoquer des erreurs. L'erreur que nous recevons est:

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

La chose étrange est que le projet compile correctement, mais montre beaucoup de ces erreurs après la compilation est terminée.

Nous avons récemment installé Panda comme protection antivirus, ce qui a causé une erreur différente pour laquelle j'ai trouvé la solution.

Toute aide serait grandement appréciée.

Merci.

Mise à jour 4/21/2009 à 11h50
l'interface et la mise en œuvre sont dans le même projet dans la solution.

Mise à jour 22/04/2009 à 08:16
J'ai essayé de supprimer l'identifiant de BusinessObjects de devant du type BatchTracker mais je reçois toujours la même chose. Ce n'est qu'un exemple de ce qui s'est passé tout au long de la solution. Chaque implémentation dans ce BatchTrackerService est marquée comme une erreur, et plusieurs autres services ont presque toutes les implémentations signalées comme une erreur. Mais en quelque sorte le projet se construit avec succès, et oui, il fonctionne correctement!
Comme pour BusinessObjects, il contient de nombreuses classes que nous utilisons comme paramètres et c'est simplement un autre projet dans cette solution. Nous ne référençons aucun assembly externe pour fournir ces classes à BusinessObjects.

Mise à jour 22/04/2009 à 08:24
La dernière chose que j'ai remarqué était que toute fonction/procédure qui n'utilise pas une classe « BusinessObjects » comme paramètre, mais utilise simplement des chaînes, des nombres entiers, etc n'est pas marqué comme une erreur.

Mise à jour 22/04/2009 à 09:50
J'ai essayé de revenir à une version précédente et j'ai pu compiler et le nombre d'erreurs est resté à zéro. J'ai réduit à un check-in de l'un des fichiers du projet où la référence à BusinessObjects a été légèrement modifiée. Je suis revenu juste ce dossier de projet et tout compile bien maintenant. Merci à tous pour m'avoir conduit dans la bonne direction.

+0

L'interface et l'implémentation se trouvent dans le même projet dans le service Web. –

Répondre

0

Il semble que vous chargez une version différente de l'assembly contenant votre interface dans le service Web et dans le client, ce qui entraîne le rejet par le client de la signature implémentée par l'interface Web. Assurez-vous que les versions sont les mêmes et, si nécessaire, signez fortement l'assemblage.

0

Votre interface spécifie que le paramètre "BatchTrackerObject" est de type "BatchTracker" mais votre implémentation utilise le type "BusinessObjects.BatchTracker". Essayez de supprimer les "BusinessObjects". qualificateur de votre implémentation.

Est-ce que plusieurs assemblys fournissent des classes dans l'espace de noms BusinessObjects?