vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Klasse erweitern um via "for each" auf deren Objekte zugreifen zu können 
Autor: lyris
Datum: 28.11.09 12:44

Hallo allerseits,

ich habe folgendes Problem: Ich möchte einen WebService nutzen, was eigentlich funktioniert aber einen heiden Programmieraufwand darstellt. Grund: Der WebService erwartet einen WSInput und gibt mir eine WSResponse. Beides sind Instanzen von Klassen die automatisch aus der WSDL-Datei generiert wurden, und eigentlich sind beide Klassen (Response- und Input) ziemlich identisch bis auf die Tatsache, daß die Response noch ein paar Variablen mehr hat.

Die Klassen sind eigentlich eher Structures als Klassen, d.h. sie haben keine Methoden.
Am WebService kann ich nichts verändern : Hier mal zwei "Minimalstbeispiele" für die Klassen.
Public Class WSInput
    Public VariableEins as String
    Public VariableZwei as Integer
    Public VariableZweiIsFilled as Boolean
End Class
 
Public Class WSResponse
    Public VariableEins as String
    Public VariableZwei as Integer
End Class
so. In der Relität sind das sicher 20 oder 30 'Properties' pro Class. Beim Aufruf gebe ich dem WS eine leere WSINput und er gibt mir ne befüllte WSResponse. Nun will ich bspw. die VariableZwei verändern ==> Ich erzeuge ne neue Instanz von WSInput und übernehme von Hand die ganzen Werte aus der letzten Response in die neue Klasse. Das nervt.

Und nun würde ich gerne für genau diesen Zweck "for each object in myWSResponseInstance" ... nutzen können um über die Variablen zu Loopen und sie ggf. in eine neue WSInput-Instanz zu kopieren. An den Klassen selbst kann ich nicht viel drehen, da mein WebService sie sonst nicht als Parameter akzeptiert.

So. Und hier weiß ich nun nicht mehr wirklich weiter und freue mich über Tipps

Ein Traum wäre nachher sowas wie:
Private Function CreateNewInput(byRef lastResponse as WSResponse) as WSInput
Dim myInput as New WSInput
for each object in lastResponse
   'mir ist klar das das Folgende wohl nicht klappt, ich wäre schonmal mit 
   ' einem IENumerator, IENumerable zufrieden der mich das for each machen 
   ' lässt!!!
   myInput.object = lastResponse.object 
next
 
'Hier noch ein paar Anpassungen wie
myInput.VariableZwei = lastResponse.VariableZwei + 5
myInput.VariableZweiIsFilled = True
return myInput
End Function
Hat jemand ne Idee ? Muss auch nicht auf meinem Ansatz fußen - Noch schöner wäre natürlich ein Class-Casting, aber ich würde das halt gerne generisch machen, da ich viele WebServices aufrufe, sonst könnte ich natürlich einmal von Hand eine CopyResponseToInputWS1() erzeugen und das Mapping von Hand vornehmen, aber ändert sich der WebService muss ich das Mapping wieder neu machen.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Klasse erweitern um via "for each" auf deren Objekte zugreif...1.903lyris28.11.09 12:44
Re: Klasse erweitern um via "for each" auf deren Objekte zug...892ModeratorDaveS28.11.09 13:07
Re: Klasse erweitern um via "for each" auf deren Objekte zug...733lyris28.11.09 13:13

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel