Hallo,
ich habe mal wieder ein kleines problem.
ich habe eine windows anwendung, welche bisher mit einem Webservice kommuniziert hat.
Dazu habe ich auch eine DLL geschrieben, welche die gleichen eigenschaften und methoden hat, wie der webservice.
der benutzer des programms kann dann entschieden, über was er gehen will.
realisieren würde ich das über INTERFACE.
doch wenn ich den webservice instanziieren will, bekomme ich eine fehlermeldung.
Fehler 1 Der Typ "ZeSysClient.VedaZeSysService.VedaZeSysService" kann nicht implizit in "Veda.IVeda" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
leider sagt mir diese Fehlermeldung noch nicht sehr viel.
was muss ich beachten?
Grüße, David
Programming is like sex: One mistake and
you have to support it your lifetime
Hallo david.ka,
leider sagt mir diese Fehlermeldung noch nicht sehr viel.
siehe [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)
herbivore
Hi,
da scheinen dir noch einige Basics im Bereich Objektorientierung zu fehlen.
Daher gehe ich davon aus das die Hilfestellung zu den Compilermeldungen nicht helfen werden.
Poste mal ein bissel mehr Code dann schauen wir der Sache mal auf den Grund.
Gruß MC#
oki,
hier der Webservice:
public class VedaZeSysService : System.Web.Services.WebService, IVeda
die DLL
public class VedaZeSysLib:IVeda
instanz bilden (funktioniert)
IVeda VedaZeSys;
VedaZeSys = new VedaZeSysLib();
instanz bilden (funktioniert nicht)
IVeda VedaZeSys;
VedaZeSys = new ZeSysClient.VedaZeSysService.VedaZeSysService();
Programming is like sex: One mistake and
you have to support it your lifetime
Hast du dein Interface explicit in der Klasse implementiert? Wenn ja, dann musst du auch explicit Casten. Steht aber auch in der Fehlermeldung
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
IVeda ist eine Klassenbibliothek
in beiden Projekten (DLL & Webservice) wurde ein verweis auf IVeda erstellt.
Programming is like sex: One mistake and
you have to support it your lifetime
Tut trotzdem nix zur Sache, die Fehlermeldung lautet, dass der Typ VedaZeSysService nicht nach IVeda implicit konvertiert werden kann. explicit ist es aber möglich, da die Klasse anscheinend nur explicit das Interface IVeda implementiert statt implicit wie in deiner Verwendung.
IVeda VedaZeSys;
VedaZeSys = (IVeda)(new ZeSysClient.VedaZeSysService.VedaZeSysService());
sollte klappen
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
danke, aber leider kommt jetzt eine Laufzeitfehlermeldung, das der Webservice nicht in IVeda umgewandelt werden kann.
Programming is like sex: One mistake and
you have to support it your lifetime
Hallo MuhammedC#,
da scheinen dir noch einige Basics im Bereich Objektorientierung zu fehlen.
Daher gehe ich davon aus das die Hilfestellung zu den Compilermeldungen nicht helfen werden.
wenn du recht hättest mit deiner Vermutung, dann ist Selbststudium angezeigt. Siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1. Und natürlich ist dann mein Hinweis goldrichtig. Sollte er jedoch wirklich nicht helfen, muss das nicht das Forum ausbaden, weil eben kein reines Anfängerforum, sondern bitte david.ka. Es ist gerade nicht Aufgabe des Forums fehlende Grundlagen zu kompensieren, sondern die Eigeninitiative anzuregen.
herbivore
mit "normalen" klassen bekomme ich das hin, das ist nicht das problem, es hängt nur am webservice, deshalb ja meine Frage ob ich diesbezüglich etwas beachten muss.
Programming is like sex: One mistake and
you have to support it your lifetime
Ein Webservice kapselt auch nur die Funktionen in Klassen. Eventuell sind die Funktionen nur über Interface (WCF-Client) ansprechbar. Die Proxy-Klasse wird dann meist vom JIT-Compiler zur Laufzeit generiert. Das ist aber wie Herbivore schon sagt Projekt bzw. Technologie abhängig und daher deine Aufgabe das zu lösen. Ist nicht böß gemeint, aber du lieferst uns die Fehlermeldung Objekt A kann nicht implizit nach B konvertiert werden. Wenn du uns mehr Hinweise lieferst, ist es eventuell möglich mehr Tips zu geben.
PS: schau dir die (komplette) Architektur deines Programmes und auch des Dienstes im Objektbrowser an. Vllt. liegts nur an einer harmlosen kleinem Verschreiber im Namen oder vllt. Using
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...