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
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.
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
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.
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