Avatar billede shemeri Praktikant
06. februar 2007 - 13:19 Der er 12 kommentarer og
1 løsning

WebService objekter

Hej,

Jeg har lavet et webservice med en metode som ser sådan ud:

Public Function getLatestNews() As News
    Dim news As New News
    news.Header() = "TEST Header"
    news.Body() = "Body text"
   
    return news
End Function

Ovenstående retunerer et nyhed men hvad hvis jeg har flere nyheder objekter der skal retuneres?

Jeg har lavet noget i den retning men ser ik helt ok til mig:

Eks.
Public Function getLatestNews() As ArrayList
    Dim news1 As New News
    Dim news2 As New News
    Dim list As ArrayList

    news1.Header() = "TEST 1"
    news1.Body() = "News text 1"
    news2.Header() = "TEST 2"
    news2.Body() = "News text 2"
   
    list.add(news1)
    list.add(news2)

    return list
End Function

Kan det passe?!
Avatar billede shemeri Praktikant
06. februar 2007 - 14:39 #1
Forresten, det er MS Visual Basic .Net 2003
Avatar billede dr_chaos Nybegynder
06. februar 2007 - 14:46 #2
jeg forstår ikke helt hvad dit spørgsmål er.
Kan du uddybe det ?
Avatar billede dr_chaos Nybegynder
06. februar 2007 - 14:58 #3
Altså din arraylist funktion ser fin ud.
Du skal bare typecaste de enkelte items fra arraylisten hvis du skal bearbejde dem yderligere.
Avatar billede arne_v Ekspert
06. februar 2007 - 15:26 #4
der boer virke med en .NET client

hvis det skal vaere portabelt i forhold til client i andre sprog skal du nok
bruge et array fremfor en ArrayList
Avatar billede shemeri Praktikant
06. februar 2007 - 15:32 #5
OK så prøver jeg igen:

Jeg har en objekt News som indholder selvfølgelig et enkelt nyhed (news). Men der skal retuneres flere nyheder ved getLatestNews kald.

Eks. 1 : Viser getLatestNews som retunere et nyhed og der er ingen problemer.

Public Function getLatestNews() As News
    Dim news1 As New News
    news1.Header() = "TEST 1"
    news1.Body() = "News text 1"

    return news1
End Function

Eks.2: Metoden retunerer en liste af news.
Public Function getLatestNews() As ArrayList
    Dim news1 As New News
    Dim news2 As New News
    Dim list As ArrayList

    news1.Header() = "TEST 1"
    news1.Body() = "News text 1"
    news2.Header() = "TEST 2"
    news2.Body() = "News text 2"
 
    list.add(news1)
    list.add(news2)

    return list
End Function


Men der får jeg sådanne XML retuneret:


<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/DSB/Service1">
- <anyType xsi:type="News">
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </anyType>
- <anyType xsi:type="News">
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </anyType>
- <anyType xsi:type="News">
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </anyType>
  </ArrayOfAnyType>

Der er noget galt der. Altså anyType elementer osv.. Ved ik hvordan jeg skal retunere en liste af objekter? Som vises såden:

<?xml version="1.0" encoding="utf-8" ?>
- <AllNews>
  <News
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </News>
- <News>
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </News>
- <News>
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </News>
</AllNews>
Avatar billede arne_v Ekspert
06. februar 2007 - 15:38 #6
proev mit forslag med et array af News
Avatar billede shemeri Praktikant
06. februar 2007 - 16:11 #7
arne_v: Tak næsten der, tror jeg.

Nu får jeg en array af News. Hvordan kan jeg lave det om til at root element hedder noget andet en ArrayOfNews?

  <?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfNews xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/DSB/Service1">
- <News>
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </News>
- <News>
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </News>
  <News xsi:nil="true" />
- <News>
  <Header>TEST 1</Header>
  <Body>WHat ever</Body>
  </News>
  </ArrayOfNews>
Avatar billede shemeri Praktikant
06. februar 2007 - 16:12 #8
<WebMethod()> _
    Public Function getLatestnews(ByVal catId As String, ByVal Limit As Integer) As News()
        Dim news As New News
        Dim AllNews(Limit) As News
        news.Header() = "TEST 1"
        news.Body() = "WHat ever"

        AllNews(0) = news
        AllNews(1) = news
        AllNews(3) = news

        Return AllNews

    End Function
Avatar billede arne_v Ekspert
06. februar 2007 - 16:37 #9
1) jeg mener ikke at du boer lave den om - den er hvad SOAP standarden og .NET mener
  den skal vaere

2) der var et spoergsmaal for et par uger siden hvor det kom frem at man
  kunne saette en attribut paa som kunne styre navnet
Avatar billede shemeri Praktikant
06. februar 2007 - 16:46 #10
Hvordan kan jeg så sætte en attribut? eller har du linket til spm?

Kan du være venlig at svar så får du point'erne :-)
Avatar billede arne_v Ekspert
06. februar 2007 - 17:24 #11
Avatar billede arne_v Ekspert
06. februar 2007 - 17:29 #12
og et svar
Avatar billede shemeri Praktikant
20. februar 2007 - 11:55 #13
tak :-)
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
Kurser inden for grundlæggende programmering

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