Pergunta

Escrevi um serviço web simples em C# usando SharpDevelop (que acabei de adquirir e adoro).

O cliente queria isso em VB e, felizmente, há um recurso Convert To VB.NET.É ótimo.Traduziu todo o código e ele foi compilado.(Eu sou um cara do “bloco de notas” há muito tempo, então posso parecer um pouco antiquado.)

Mas recebo este erro quando tento carregar o serviço agora.

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

Source Error:

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

Excluí as caixas e as reconstruí, e pesquisei no Google (e no stackoverflow).Eu vasculhei os arquivos do projeto em busca de vestígios de C#.

Alguma ideia?

Foi útil?

Solução

No VB.NET, as declarações de namespace são relativas ao namespace padrão do projeto.Portanto, se o namespace padrão do projeto estiver definido como X.Y, tudo entre Namespace Z e End Namespace estará no namespace X.Y.Z.Em C# você deve fornecer o nome completo do namespace, independentemente do namespace padrão do projeto.Portanto, se o projeto C# tivesse o namespace padrão X.Y, os arquivos CS ainda incluiriam o namespace X.Y declaração.Após a conversão para VB, se o namespace padrão e as declarações de namespace nos arquivos permanecerem iguais, você terá classes no namespace X.Y.X.Y.Portanto, no seu caso, a classe Soap está agora no namespace flightinfo.flightinfo.Assim, existem três soluções possíveis:

  • altere o arquivo asmx para

  • remova o namespace padrão do projeto

  • remova as declarações de namespace dos arquivos vb

Outras dicas

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

Qual é o nome da sua turma?

O problema pode ser causado por projetos VB.NET e C# que usam diferentes convenções de nomenclatura para assemblies do projeto e como o namespace do projeto é usado.Pelo menos é aí que eu começaria a procurar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top