Avatar billede dehdar Nybegynder
02. maj 2010 - 13:09 Der er 10 kommentarer og
1 løsning

SOAP C#

Hej jeg har følgende klasse. På min server laver jeg et objekt af klassen. Jeg har en webservice som skal kunne returnere objektet. Hvad skal der til før det kan lade sig gøre? Jeg ved det skal være serialiseringsbart, men hvordan definierer jeg det?

Her er et udpluk af min klasse:

    public class DVCaretaker
    {
        private string firstname;
        private string surname;
        private string email;
        private string phonenumber;

        public void DVCaretaker(string firstname, string surname, string email, string phonenumber)
        {
            this.firstname = firstname;
            this.surname = surname;
            this.email = email;
            this.phonenumber = phonenumber;
        }

        public string Firstname
        {
            get { return firstname; }
        }
        public string Surname
        {
            get { return surname; }
        }
        public string Email
        {
            get { return email; }
        }
        public string Phonenumber
        {
            get { return phonenumber; }
        }
    }
Avatar billede Syska Mester
02. maj 2010 - 13:11 #1
[Serializable]
public class Test
(
)
Avatar billede Syska Mester
02. maj 2010 - 13:12 #2
haha ... selvf curly brackets

[Serializable]
public class Test
{}

Det er ikke sådan med for fede fingre :-P
Avatar billede dehdar Nybegynder
02. maj 2010 - 13:13 #3
Ok jeg prøver lige.
Avatar billede dehdar Nybegynder
02. maj 2010 - 13:18 #4
Det er desværre ikke nok. Jeg får følgende besked:
CentralServer.DVPatient cannot be serialized because it does not have a parameterless constructor.
Avatar billede Syska Mester
02. maj 2010 - 13:24 #5
Nej, som den siger, så skal du have en Parameter less construtor, og du har kun en som tager parameters.

Tilføj følgende til din klasse.
public void DVCaretaker()
        {}

Men jeg mener at den nok bruger noget Reflection til at sætte properties bagefter ... så du skal også have tilføjet "setters" din dine properties.

mvh
Avatar billede dehdar Nybegynder
02. maj 2010 - 13:26 #6
Okay jeg forsøger at tilføje setters.

For jeg forsøgte at tilføje en default constructor og så får jeg intet i mit SOAP response.


Mit SOAP REQUEST:

POST /WebServices/CentralServerServices.asmx HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetPatientContactInformation xmlns="http://tempuri.org/">
      <cpr>string</cpr>
      <password>string</password>
      <validPassword>boolean</validPassword>
    </GetPatientContactInformation>
  </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length



Mit SOAP RESPONSE

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetPatientContactInformationResponse xmlns="http://tempuri.org/">
      <GetPatientContactInformationResult />
    </GetPatientContactInformationResponse>
  </soap12:Body>
</soap12:Envelope>
Avatar billede dehdar Nybegynder
02. maj 2010 - 13:30 #7
Det virkede :)

Tusind tak for hjælpen. Smid et svar for 200 velfortjente points.
Avatar billede Syska Mester
02. maj 2010 - 13:35 #8
svar
Avatar billede Syska Mester
02. maj 2010 - 13:36 #9
Mange ting i dag bruger reflection ... og kræver derfor en parameterless construtor.
Avatar billede arne_v Ekspert
03. maj 2010 - 02:29 #10
Man kan godt bruge reflection med klasser som kun har constructor med argumenter.

Men en "pæn" data klasse har en constructor uden argumenter.
Avatar billede Syska Mester
03. maj 2010 - 12:06 #11
Ja, men SOAP, linq2sql ... og andre ... kræver en parameter less construtor.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester