Pregunta

Escribí un servicio web simple en C# usando SharpDevelop (que acabo de recibir y me encanta).

El cliente lo quería en VB y, afortunadamente, existe una función Convertir a VB.NET.Es genial.Tradujo todo el código y se compila.(He sido un tipo "Bloc de notas" durante mucho tiempo, por lo que puede parecer un poco anticuado).

Pero aparece este error cuando intento cargar el servicio ahora.

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

Source Error:

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

Eliminé los contenedores y los reconstruí, y busqué en Google (y en Stackoverflow).He rastreado los archivos del proyecto en busca de restos de C#.

¿Algunas ideas?

¿Fue útil?

Solución

En VB.NET, las declaraciones de espacios de nombres son relativas al espacio de nombres predeterminado del proyecto.Entonces, si el espacio de nombres predeterminado para el proyecto se establece en X.Y, todo lo que esté entre Namespace Z y End Namespace estará en el espacio de nombres X.Y.Z.En C# debe proporcionar el nombre completo del espacio de nombres, independientemente del espacio de nombres predeterminado del proyecto.Entonces, si el proyecto C# tuviera el espacio de nombres predeterminado X.Y, los archivos CS aún incluirían el namespace X.Y declaración.Después de convertir a VB, si tanto el espacio de nombres predeterminado como las declaraciones de espacio de nombres en los archivos permanecen iguales, terminará con clases en el espacio de nombres X.Y.X.Y.Entonces, en su caso, la clase Soap ahora está en el espacio de nombres Flightinfo.flightinfo.Así, existen tres posibles soluciones:

  • cambiar el archivo asmx a

  • eliminar el espacio de nombres predeterminado del proyecto

  • eliminar las declaraciones de espacio de nombres de los archivos vb

Otros consejos

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

¿Cómo se llama tu clase?

El problema puede deberse a que los proyectos VB.NET y C# utilizan diferentes convenciones de nomenclatura para los ensamblados del proyecto y a cómo se utiliza el espacio de nombres del proyecto.Al menos ahí es donde empezaría a buscar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top