«Не удалось загрузить тип» в веб-службе, преобразованной в VB.NET - PullRequest
1 голос
/ 13 сентября 2008

Я написал простой веб-сервис на C #, используя SharpDevelop (который я только что получил и мне нравится).

Клиент хотел это в VB, и, к счастью, есть функция Convert To VB.NET. Это великолепно. Переведен весь код, и он собирается. (Я был парнем из «Блокнота» в течение долгого времени, поэтому я могу показаться немного старомодным.)

Но я получаю эту ошибку, когда пытаюсь загрузить службу сейчас.

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

Source Error:

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

Я удалил корзины и перестроил, и я искал Google (и stackoverflow). Я искал файлы проекта для любых остатков C #.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 14 октября 2008

В VB.NET объявления пространств имен относятся к пространству имен проекта по умолчанию. Таким образом, если для пространства имен по умолчанию для проекта задано значение X.Y, в пространстве имен X.Y.Z будет указано значение между Namespace Z и End Namespace. В C # вы должны предоставить полное имя пространства имен, независимо от пространства имен по умолчанию проекта. Таким образом, если бы проект C # имел пространство имен по умолчанию X.Y, файлы CS все равно содержали бы объявление namespace X.Y. После преобразования в VB, если пространство имен по умолчанию и объявления пространств имен в файлах остаются прежними, вы получаете классы в пространстве имен X.Y.X.Y. Так что в вашем случае класс Soap теперь находится в пространстве имен flightinfo.flightinfo. Таким образом, есть три возможных решения:

  • изменить файл asmx на

  • удалить пространство имен по умолчанию из проекта

  • удалить объявления пространства имен из файлов vb
0 голосов
/ 16 сентября 2008

Проблема может быть вызвана тем, что проекты VB.NET & C # используют разные соглашения об именах для сборок проектов и то, как используется пространство имен проекта. По крайней мере, так я бы начал искать.

0 голосов
/ 13 сентября 2008
<%@ WebService Class="flightinfo.Soap,flightinfo" %>

Как называется ваш класс?

...