Hoe maak ik een class property zichtbaar in een web service?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedemorgen/middag/avond tweakers.

Ik ben in .NET framework 2.0 / VS 2008 een eenvoudige web service aan het voorbereiden. De method werkt maar ik zou graag enkele properties ook "gewoon" zichtbaar willen hebben in de WSDL zodat de client applicatie deze properties kan zetten alvorens een method aan te roepen....

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
  public class Service1 : System.Web.Services.WebService
  {
    public string Bestemming;
    public string Vertrekpunt; 

    [WebMethod]
    public int Go ()
    {
      // verwerking

      return 0;
    }
  }


Waarom zijn Bestemming en Vertrekpunt eigenlijk niet zichtbaar in de WSDL en dus ook niet in de client applicatie. Wat zie ik over het hoofd?

TIA Aad

PS: ik weet dat ik parameters aan de Go () method kan doorgeven maar het gaat meer om het principe "property zichtbaar in WSDL".

[ Voor 1% gewijzigd door Creepy op 15-10-2009 16:34 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Omdat je op een webservice methoden/functies aanroept. En niet meer dan dan. En aangezien je geen get en set methoden hebt voor je public properties zie je die uiteraard ook niet terug in je WSDL.

En een tip voor de volgende keer: gebruik code tags [code] voor het posten van code ;)

[ Voor 26% gewijzigd door Creepy op 15-10-2009 16:35 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 11:39

Haan

dotnetter

Je kan dat oplossen door een request als parameter te vereisen:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class GoRequest
{
    public string Bestemming;
    public string Vertrekpunt;
}

[WebMethod]
public int Go (GoRequest request)
{
      // verwerking
      string concat = request.Bestemming + request.Vertrekpunt;

      return 0;
} 


De aanroep wordt dan iets als:
C#:
1
2
3
4
5
6
7
Service1 webservice = new Service1();

GoRequest request = new GoRequest();
request.Bestemming = "daar";
request.Vertrekpunt = "hier";

int i = webservice.Go(request);

[ Voor 3% gewijzigd door Haan op 15-10-2009 16:51 ]

Kater? Eerst water, de rest komt later