«Не удалось загрузить тип» в веб-сервисе, преобразованном в VB.NET.

StackOverflow https://stackoverflow.com/questions/60098

Вопрос

Я написал простой веб-сервис на 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#.

Есть идеи?

Это было полезно?

Решение

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

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

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

  • удалите объявления пространства имен из файлов vb

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top