Frage

Ich schrieb einen einfachen Web-Service in C # mit SharpDevelop (denen ich gerade habe, und ich liebe).

Der Kunde wollte es in VB, und zum Glück gibt es eine Umwandlung zu VB.NET-Funktion. Es ist toll. Übersetzt den gesamten Code, und es baut. (Ich habe schon seit langer Zeit ein „Notepad“ Kerl, so dass ich vielleicht ein wenig altmodisch zu sein scheinen.)

Aber ich bekomme diese Fehlermeldung, wenn ich versuche jetzt, den Dienst zu laden.

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

Source Error:

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

Ich habe die Bins gelöscht und neu aufgebaut, und ich habe Google (und Stackoverflow) gesucht. Ich habe die Projektdateien für alle Reste von C # abgekocht.

Irgendwelche Ideen?

War es hilfreich?

Lösung

In VB.NET, sind Namespace-Deklarationen in Bezug auf den Standard-Namespace des Projektes. Also, wenn das Standard-Namespace für das Projekt X · Y gesetzt ist, everithyng zwischen Namespace Z und End Namespace wird im X.Y.Z Namespace sein. In C # müssen Sie die vollständigen Namespace-Namen zur Verfügung zu stellen, unabhängig von dem Standard-Namespace des Projektes. Also, wenn das C # Projekt den Standard-Namespace X.Y hat, würden die CS-Dateien enthalten immer noch die namespace X.Y Erklärung. Nach dem VB konvertieren, wenn sowohl der Standard-Namespace und die Namespace-Deklarationen in den Dateien gleich bleiben Sie am Ende mit Klassen im X.Y.X.Y Namespace auf. Also in Ihrem Fall ist die Soap-Klasse jetzt im flightinfo.flightinfo Namespace. So gibt es drei mögliche Lösungen:

  • die asmx Datei ändern

  • entfernen Sie den Standard-Namespace aus dem Projekt

  • entfernen Sie die Namespace-Deklarationen aus den vb Dateien

Andere Tipps

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

Wie lautet der Name Ihrer Klasse?

Das Problem kann Ursache von VB.NET & C # -Projekten wird mit unterschiedlichen Namenskonventionen für Projekt Baugruppen und wie das Projekt-Namespace verwendet. Zumindest ist das wäre, würde ich anfangen suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top