Laden...

VB.NET und ServiceReference

Erstellt von HiGHteK vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.806 Views
H
HiGHteK Themenstarter:in
114 Beiträge seit 2007
vor 9 Jahren
VB.NET und ServiceReference

Hallo zusammen,

ich hoffe ich bin hier mit meinem Anliegen richtig, auch wenn es nur bedingt mit der WCF zu tun hat, aber alle anderen Kategorien erschienen mir noch unpassender.

Folgendes Problem...
Aktuell muss ich eine ältere Anwendung pflegen, die komplett in VB.NET (hab selber bisher immer in C# entwickelt) entwickelt wurde. Diese nutzt verschiedene Webservices (Java+Tomcat+JAX-WS) via Servicereference, so dass alle notwendigen Klassen anhand der WSDL automatisch generiert werden.
Nach Aktualisierung der Servicereferenz tritt nun leider ein Fehler auf, weil 2 Klassen Query und query generiert wurden. Wie ich daraufhin lernen musste unterscheidet VB.NET hier nicht zwischen Groß- und Kleinschreibung und beschwert sich somit zu recht, dass es 2 Klassen mit dem selben Namen gibt bzw. das an einer Klasse Query ein Attribut mehrfach definiert wurde.
Gibt es irgendeinen Ausweg aus diesem Problem? Kann man dem Generierungsprozess irgendwie sagen, dass er die Typen bitte in verschiedene Namespaces packen soll, da diese auch innerhalb der WSDL in verschiedenen XML-Namespaces liegen?

Einzige Möglichkeiten, die mir bisher eingefallen sind, wäre entweder die Anpassung der Serverseite oder Umstellung des Projekts auf C# auf Clientseite...beides mit erheblichem Aufwand verbunden und somit nicht in meinem engeren Favoritenkreis 😉

Für jegliche Anregungen bin ich dankbar ..

Grüße, HiGHteK

F
10.010 Beiträge seit 2004
vor 9 Jahren

Umstellung des Projekts auf C# auf Clientseite

Wozu?
Du weist schon das man in VB.NET auch locker jede C# DLL benutzen kann?

Aber ganz abgesehen davon könntest du auch einfach jeden Webservice in eine eigene DLL packen,
dann kannst du den Namespace auch verändern.

H
HiGHteK Themenstarter:in
114 Beiträge seit 2007
vor 9 Jahren

Du weist schon das man in VB.NET auch locker jede C# DLL benutzen kann?

Ja dieser Umstand ist mir bekannt. Allerdings kann man VB und C# nicht innerhalb eines Projektes mischen und das Projekt mit der problematischen Servicereferenz ist halt ein VB.NET-Projekt. Und nur die Servicereferenz in ein C#-Projekt auslagern ging auch nicht, da da noch bisschen mehr (VB.NET)-Code dran hing.

Aber ganz abgesehen davon könntest du auch einfach jeden Webservice in eine eigene DLL packen,
dann kannst du den Namespace auch verändern.

Danke, genau das hab ich dann auch getan. Keine Ahnung warum ich nicht gleich daran gedacht hatte diesen monolitisch anmutenden Service aufzuteilen 🤔

Grüße, HiGHteK

F
10.010 Beiträge seit 2004
vor 9 Jahren

Und nur die Servicereferenz in ein C#-Projekt auslagern ging auch nicht, da da noch bisschen mehr (VB.NET)-Code dran hing.

Äh wie?
Man kann auch C# klassen mit VB.NET erweitern, insofern sehe ich da kein Poblem.

H
HiGHteK Themenstarter:in
114 Beiträge seit 2007
vor 9 Jahren

Danke nochmals für deine Hilfe.
Auch der zuletzt von dir angesprochene Aspekt ist mir bekannt, hätte das Problem aber nur unzureichend gelöst. Ich gebe auch gern zu, dass ich VB.NET bisher bewusst gemieden habe 😉

Aber wie bereits angesprochen konnte ich mein Problem sehr viel einfacher lösen, als nun extra eine Klasse in einem C#-Projekt anzulegen, um diese mittels dem existierenden VB-Projekt zu erweitern / zu nutzen. Ich hab tatsächlich nur einen kleinen Denkanstoss gebraucht.

Grüße, HiGHteK