J'ai ajouté une référence de service à mon projet Web mvc4 et l'ai laissé avec l'espace de noms par défaut "ServiceReference1", mais quand je veux utiliser cet espace de noms, Visual Studio ne le trouve pas, comme il n'existe pas, le service Web est en place et fonctionne bien. Qu'est-ce que je fais exactement mal?
J'ai trouvé la solution ICI qui, comme Hoakie l'a mentionné ci-dessous, les instructions ont fonctionné pour moi et mon reference.cs est généré correctement maintenant:
1) Faites un clic droit sur la référence du service
2) Sélectionnez Configurer la référence de service
3) Décochez "Réutiliser les types dans les assemblys référencés"
et Voila!
Cela est dû au fait que le nom identiquenamespace
est le nom class.
Changez votre espace de noms en un nom qui n'est pas le même nom que votre classe et cela compilera
Regardez la classe proxy générée par Visual Studio pour votre service et voyez quels sont l'espace de noms et le nom de classe
Un autre problème généralement ignoré est que la référence de service ajoute l'espace de noms racine de votre projet à l'espace de noms que vous fournissez dans la configuration du service.
En d'autres termes, si l'espace de noms de votre service est ServiceReference1, l'espace de noms réel qui sera créé sera [RootNameSpace] .ServiceReference1. RootNameSpace est généralement le nom de votre projet, donc dans la plupart des cas, vous pouvez le corriger simplement en ajoutant votre référence de service à votre [projectname.]. Si le nom de votre projet est MyProject, l'espace de noms sera MyProject.ServiceReference1
Il est également assez simple d'ouvrir le fichier csproj (en supposant un projet C #) dans le bloc-notes et de rechercher "RootNamespace" pour trouver l'espace de noms racine du projet.