2012-04-05 3 views
0

У меня есть веб-сервис работает на моей локальной машине в http://localhost:8000/Service/, когда я перейти к этому он отображает некоторые жёстко прописанные информацию в виде списка, как так:XML в ListBox из WebService

<ArrayOfStudent> 
<Student> 
<StudentID>bla</StudentID> 
<FirstName>bla</FirstName> 
<LastName>bla</LastName> 
</Student> 
<Student> 
<StudentID>bla1</StudentID> 
<FirstName>bla1</FirstName> 
<LastName>bla1</LastName> 
</Student> 
<Student> 
<StudentID>bla2</StudentID> 
<FirstName>bla2</FirstName> 
<LastName>bla2</LastName> 
</Student> 
</ArrayOfStudent> 

Как я могу взять список XML как это и добавить его в список из моего uri http://localhost:8000/Service/ как его сделать с остатком, я не могу добавить ссылку на сервисное приложение Windows?

Например здесь является метод о том, как добавить изображение в Imagebox от URI,:

public Image GetImage(int width, int height) 
    { 
     string uri = string.Format("http://localhost:8000/Service/picture/{0}/{1}", width, height); 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 

     using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
     { 
      using (Stream stream = response.GetResponseStream()) 
      { 
       return new Bitmap(stream); 
      } 
     } 
    } 

Тогда все, что нужно сделать, это позвонить pictureBox1.Image = GetImage(pictureBox1.Height, pictureBox1.Width); в любом месте я хочу. Я просто не знаю, как добавить текстовые данные из моего сервиса? - Форматирование вопрос http://www.dotnetcodecentral.com/Post/215/wcf-rest-consuming/convert-or-deserialize-wcf-rest-response-to-objects-list

private void button2_Click(object sender, EventArgs e) 
    { 
     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); 
     HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 
     Stream strm = resp.GetResponseStream(); 
     XElement xdoc = XElement.Load(strm); // XElement.Load has some invalid arguements? 
     q = From student In xdoc.<Student>// from here 
      Select New With { 
       .StudentNo = student.<StudentID>.Value, 
       .Firstname = student.<FirstName>.Value, 
       .Surname = student.<LastName>.Value, 
      }; // to here is abit of a mess 
     listBox1.DataSource = q.ToList(); 
    } 
} 

EDIT:

я что-то вроде этого попытки?

enter image description here

ответ

1
XDocument xDoc = XDocument.Load(url); 
var students = xDoc.Descendants("Student") 
    .Select(n => new 
    { 
     StudentNo = n.Element("StudentID").Value, 
     Firstname = n.Element("FirstName").Value, 
     Surname = n.Element("LastName").Value 
    }) 
    .ToList(); 

dataGridView1.DataSource = students; 
+0

когда вы говорите URL вы имеете в виду мой локальный адрес? также означает ли это, что мне не нужна линия ответа strm потока? –

+0

@ Garrith. Да, точно. –

+0

Это работает :) Я обновил свой вопрос с изображением, которое, похоже, дает проблему с форматированием? Это из окон форм приложения или веб-службы? –

Смежные вопросы