Laden...

Interface: DLL & WebService

Erstellt von david.ka vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.609 Views
D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 15 Jahren
Interface: DLL & WebService

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

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo david.ka,

leider sagt mir diese Fehlermeldung noch nicht sehr viel.

siehe [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

herbivore

M
222 Beiträge seit 2005
vor 15 Jahren

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#

D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 15 Jahren

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

3.971 Beiträge seit 2006
vor 15 Jahren

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

D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 15 Jahren

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

3.971 Beiträge seit 2006
vor 15 Jahren

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

D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 15 Jahren

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

49.485 Beiträge seit 2005
vor 15 Jahren

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

D
david.ka Themenstarter:in
343 Beiträge seit 2005
vor 15 Jahren

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

3.971 Beiträge seit 2006
vor 15 Jahren

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