Webservice Objekt in lokales objekt mit gleicher DLL übergeben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    Webservice Objekt in lokales objekt mit gleicher DLL übergeben

    Hallo

    Ich möchte ein Objekt von einem Webservice in einen CLient übergeben. DIe ABfrage funktioniert ja alles soweit.

    Das Problem ist dass ich das Objekt nicht 1zu1 der lokalen Klasse übergeben kann, obwohl diese die gleiche DLL ist wie im Webservice.

    WIe stelle ich das an?

    VIelen Dank.

    Romed schrieb:

    Das Problem ist dass ich das Objekt nicht 1zu1 der lokalen Klasse übergeben kann, obwohl diese die gleiche DLL ist wie im Webservice.


    Was bedeutet das? Welchen Wert erhältst du und welchen benötigst du in deiner "lokalen" Klasse?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hallo

    ​Was für ein Webservice? Ein "normales" ASP.NET Webservice oder eine REST API?

    ​Wenn es ein normales ASP.NET Webservice ist werden die Proxys in deiner App automatisch generiert wenn du einen Webverweis (Verweise -> Webverweis) hinzufügst.
    ​Ansonsten wenn dies nicht der Fall ist und die Klassen haben genau die selbe Struktur kannst du ja über Reflection die Properties durchlaufen und deren Werte zuweisen.

    Grüße
    ​Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo

    Ich übergebe z.b. das Objekt Mitarbeiter mit all sienen Probertys übder das Webservice. In der Lokalen Klasse habe ich genau das gleche objekt. Hier kann ich es aber nicht übernehmen und muss jede Property einzeln wieder dem lokalen Objektzuweisen.

    MitarbeiterLocal.ID = MitarbeiterWS.ID usw.
    Ich kann eben nicht sagen MitarbeiterLocal = MitarbeiterWs

    Ich möchte mir eben die zuweisung aller Propertys ersparen.
    Hallo

    Wärst du so nett und beantwortest meine Frage?
    Hast du versucht es so einzubinden wie ich geschrieben habe??

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo

    ​Wenn du einen Webverweis eingebunden hast bekommst du bereits das richtige Objekt zurück da sich im Normalfall die Proxyklasse darum kümmert.
    Als du den Verweis hinzugefügt hast hat die VS ja alle Klassen erstellt oder?

    ​Evtl. kannst du ja ein kleines Beispielprojekt hier hochladen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Sasha

    Anbei mein Projekt.
    Dieses nutzt die gleiche DLL wie das Webservice.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Romed“ ()

    Hallo

    Leider hast du mir das Webservice nicht geschickt.
    Aber probier mal das zu setzten und den Verweis updaten.

    Sieht so aus als wurden keine Proxys generiert.

    Falls du nicht weiterkommst musst du mir das Webservice auch zeigen. Leider

    Grüße
    Sascha
    Bilder
    • webservice.PNG

      12,84 kB, 390×295, 97 mal angesehen
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Sasha

    Funktioniert leider auch nicht.

    Anbei das Webservice. Hier ist die Libary direkt mit dem Projekt eingebunden diese ist auch dabei.
    Danke für deine Mühen.
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Romed“ ()

    Hallo

    ​Bring das Project hier in der Arbeit jetzt nicht ans laufen da mir hier einiges fehlt. Probiers dann zuhause.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Romed schrieb:

    Ich kann eben nicht sagen MitarbeiterLocal = MitarbeiterWs


    Warum? Fehlermeldung?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Das hier mal versucht?

    MitarbeiterLocal = DirectCast(MitarbeiterWS, objMitarbeiter)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Dann sind es aber keine Identischen Objekte. Du musst also zu Fuß die Eigenschaften mappen/zuweisen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hallo

    Bin nun dazu gekommen das ich mir dein Beispiel ansehe. Mal abgesehen davon das du sehr viele Verweise wohl unnötig im Projekt hast passt soweit alles.
    Den Client habe ich mir hier zuhause jetzt nicht angesehen (war der im ersten File dabei oder nicht?), du hast den ersten Anhang ja entfernt.

    Ich habe nun einen Client hinzugefügt, über Webverweis einen Verweis auf das Webservice hinzugefügt, und KEINEN (!!!) Verweis auf die ClassLibrary.
    Warum? Wenn du den Webverweis hinzufügst generiert dir VisualStudio die Proxyklassen wie schon in 2 Posts erwähnt.
    Über diese kann ich jetzt super zugreifen. Folgender Code hat natürlich wenig sinn aber er würde funktionieren:

    VB.NET-Quellcode

    1. Dim serv = New WebService_Inoffice.NOFFICE_SDKSoapClient()
    2. Dim mitarbeiterLocal As New WebService_Inoffice.objMitarbeiter()
    3. Dim mitarbeiterWs = serv.GetMitarbeiter(1)
    4. mitarbeiterLocal = mitarbeiterWs


    Du siehst ja, hier ist objMitarbeiter innerhalb des Service und dieses ist auch zu Verwenden.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Sasha

    Vielen Dank für deine Mühen.
    Ich habe dies schon so gehandhabt. Ich habe mich vermutlich ein wenig falsch ausgedrückt.

    Das mit dem Webservice funktioniert soweit. Ich will die Klasse die das Webservice übergibt in eine lokale Klasse (diese ist die INOFFICE_ClassLibary.objMitarbeiter) übergeben ohne jede einzelne Eigenschaft zupordnen zu müssen.

    VB.NET-Quellcode

    1. Dim serv = New WebService_Inoffice.NOFFICE_SDKSoapClient()
    2. Dim mitarbeiterLocal As New INOFFICE_ClassLibary.objMitarbeiter()
    3. Dim mitarbeiterWs = serv.GetMitarbeiter(1)
    4. mitarbeiterLocal = mitarbeiterWs 'Hier wirft es immer diese Fehlermeldung. Das Lokale objekt wird auch in einer lokalen DB gespeichert.


    Ich hoffe das dies nun ein wenig klarer mein Problem beschreibt.

    LG