ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
465
465
EMPFEHLEN
-
01.07.09 08:57 #1
- Registriert seit
- Oct 2003
- Beiträge
- 117
Hi Forum
Ich möchte, dass mein Webservice ein Objekt einer selbstgeschriebenen Klasse übernimmt:
Code :1 2 3 4
<WebMethod(Description:="<b>returns info about your account</b>")> _ Public Function getAccountInfo(ByVal customer As Customer) As GatewayResults Return CustomerManager.getAccountInfo(customer) End Function
Code :1 2 3 4 5
Public Class Customer Private AccountID As Int32 = 0 Private Username As String = "" Private MonthlyBill As Boolean = False End Class
Bitte keine Hinweise, dass dies nonsense sein könnte. Ich habe im Client einen Web-Reference eingefügt und kann auf Clientseite auch schön ein Objekt "Customer" erstellen, doch wenn ich den WebService aufrufe, erhalte ich auf der Serverseite immer ein leeres Objekt.
Ich habe bereits mit
- Serializable() und SoapElement, XmlElement
- XMLRoot und XMLElement
herumgebastelt, aber irgendwie habe ich das ned zum Fliegen gebracht.
Kann mir jemand obiges Beispiel komplettieren?
Und dann noch dies:
Wie würde sowas gehen, wenn ich zwei eigene Objekte übergeben möchte?Code :1 2 3 4
<WebMethod(Description:="<b>returns info about your account</b>")> _ Public Function setRelation(ByVal customer As Customer, ByVal hallo As Hallo) As GatewayResults Return CustomerManager.setRelation(customer, hallo) End Function
cheerioh & 1000 Dank
SiS
-
01.07.09 09:00 #2
- Registriert seit
- Jan 2005
- Ort
- Frankfurt am Main
- Beiträge
- 297
Die Attribute DataContract und DataMember wedem dir dabei helfen:
http://msdn.microsoft.com/en-us/library/aa347792.aspxhttp://dirkgoldecker.spaces.live.com
. Microsoft Certified Technology Specialist
. Microsoft Certified Professional Developer
|-> Web Applications
-
01.07.09 09:31 #3
- Registriert seit
- Oct 2003
- Beiträge
- 117
Hi M4st3r
Danke für Deine prompte Antwort. Ich weiss jetz ehrlich gesagt nicht genau wie mir dies helfen soll? Mein Problem ist doch, dass eben das Objekt beim Server leer ist. Obwohl ich auf der Clientseite:
Code :1 2 3 4 5 6 7 8
Dim webservice As CustomerWebServiceRef.WebService = New CustomerWebServiceRef.WebService() Dim customer As CustomerWebServiceRef.Customer = New CustomerWebServiceRef.Customer() customer.AccountID = 1 customer.Username = "Homer" customer.MonthlyBill = false MessageBox.Show(webService.getAccountInf(customer)
Explizit dem Objekt Werte setze, sind die Properties in der webmethod getAccounInfo() bereits leer (resp. auf default). Ich will ja keine leeren Werte übergeben? Sorry, ich hab heute Montag
Anmerkung: In der Klasse Customer sind die Properties natürlich public!
Danke Dir!
-
01.07.09 09:41 #4
- Registriert seit
- Jan 2005
- Ort
- Frankfurt am Main
- Beiträge
- 297
...und die Attribute gesetzt?
Die WCF-Maschinerie serialisiert dir die Klasse nur wenn die Attribute vorhanden sind!http://dirkgoldecker.spaces.live.com
. Microsoft Certified Technology Specialist
. Microsoft Certified Professional Developer
|-> Web Applications
-
01.07.09 10:22 #5
- Registriert seit
- Oct 2003
- Beiträge
- 117
<EDIT>
heee funktioniert nun doch auf einmal (vielleicht habe doch die Web-Referenz nicht aktualisiert!) Ich muss noch ausprobieren, warum ich eine bestehende Klasse nicht mit diesen Attributen ausstatten kann... melde mich nochmals.....
</EDIT>
Jiu:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Imports Microsoft.VisualBasic Imports System.Runtime.Serialization <DataContract()> _ Public Class Customer Private intAccountID As Int32 = 0 Private strUsername As String = "" Private blnMonthlyBill As Boolean = False <DataMember()> _ Public Property AccountID() As Int32 Get Return Me.intAccountID End Get Set(ByVal value As Int32) Me.intAccountID = value End Set End Property <DataMember()> _ Public Property Username() As String Get Return Me.strUsername End Get Set(ByVal value As String) Me.strUsername = value End Set End Property <DataMember()> _ Public Property MonthlyBill() As Boolean Get Return Me.blnMonthlyBill End Get Set(ByVal value As Boolean) Me.blnMonthlyBill = value End Set End Property End Class
Zudem: Das setzt .NET 3.0 voraus, nicht? Jedenfalls läuft es mit dieser Erweiterung auf dem Live-System nicht (The file XXXXXX has not been pre-compiled, and cannot be requested.), da dort nur .NET 2.0 installiert ist.
Es kann doch nicht so schwierig sein, ein Objekt dieser Klasse meinem WebService zu übergeben? Und ja, ich habe natürlich den Web Service Referenz beim Client aktualisiert!
Nochmals Danke!Geändert von StehtimSchilf (01.07.09 um 10:38 Uhr)
-
01.07.09 10:56 #6
- Registriert seit
- Oct 2003
- Beiträge
- 117
Oh Mann
Ich habe bei allen Properties die Klausel Set vergessen!
Set (ByVal value As String)
Me.strUsername = value '<--- das ist wichtig!
End Set
gangnagnangngnga! Schön ist heute Montag
Und nun klappts sogar ohne DataContract!
Ich danke Dir für Deine Beihilfe!
cheeroh & Gruess
SiS
Ähnliche Themen
-
JBoss Webservice + EAR mit Parameter starten
Von devilmc im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 06.10.10, 16:57 -
[C++] Impliziter Konvertierungsoperator von int zu eigener Klasse
Von Jellysheep im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 09.08.10, 17:54 -
Problem mit eigener Klasse und Objekten dieser Klasse
Von Eroli im Forum C/C++Antworten: 15Letzter Beitrag: 10.06.10, 17:48 -
settimeout in eigener klasse auf eine Methode der Klasse
Von user2580 im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 12.04.09, 16:26 -
Probleme mit eigener Klasse
Von Rene42 im Forum .NET CaféAntworten: 3Letzter Beitrag: 16.02.07, 09:25





Zitieren
Login





