Question

J'ai écrit un service Web simple en C# en utilisant SharpDevelop (que je viens de recevoir et que j'adore).

Le client le voulait en VB, et heureusement, il existe une fonctionnalité Convertir en VB.NET.C'est bien.Traduit tout le code, et il se construit.(Je suis un gars du « Bloc-notes » depuis longtemps, donc je peux paraître un peu démodé.)

Mais j'obtiens cette erreur lorsque j'essaie de charger le service maintenant.

Parser Error Message: Could not load type 'flightinfo.Soap' from assembly 'flightinfo'.

Source Error:

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

J'ai supprimé les bacs et reconstruit, et j'ai recherché Google (et stackoverflow).J'ai parcouru les fichiers du projet à la recherche de restes de C#.

Des idées?

Était-ce utile?

La solution

Dans VB.NET, les déclarations d'espace de noms sont relatives à l'espace de noms par défaut du projet.Ainsi, si l'espace de noms par défaut du projet est défini sur X.Y, tout entre Namespace Z et End Namespace sera dans l'espace de noms X.Y.Z.En C#, vous devez fournir le nom complet de l'espace de noms, quel que soit l'espace de noms par défaut du projet.Ainsi, si le projet C# avait l'espace de noms par défaut X.Y, les fichiers CS incluraient toujours le namespace X.Y déclaration.Après la conversion en VB, si l'espace de noms par défaut et les déclarations d'espace de noms dans les fichiers restent les mêmes, vous vous retrouvez avec des classes dans l'espace de noms X.Y.X.Y.Donc, dans votre cas, la classe Soap se trouve désormais dans l'espace de noms flightinfo.flightinfo.Il y a donc trois solutions possibles :

  • changez le fichier asmx en

  • supprimer l'espace de noms par défaut du projet

  • supprimer les déclarations d'espace de noms des fichiers vb

Autres conseils

<%@ WebService Class="flightinfo.Soap,flightinfo" %>

Quel est le nom de ta classe ?

Le problème peut être dû au fait que les projets VB.NET et C# utilisent différentes conventions de dénomination pour les assemblys de projet et à la manière dont l'espace de noms du projet est utilisé.C'est du moins là que je commencerais à chercher.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top