2011-01-05 1 views
0

일반적인 질문이 필요합니다. 나는 내 아이폰에 이것을 쓰고 있기 때문에 코드가 필요 없다.ASP.NET MVC 2 : SPROC 응답의 비 직렬화

특정 XML 스키마를 나타내는 클래스가 있습니다. 이 XML을 반환하는 SPROC가 있습니다. 내가해야 할 일은 XML을이 클래스에 deserialize하는 것이다.

XML :

<xml> 
    <person> 
      <firstName>Bob</firstName> 
      <lastName>Robby</lastName> 
    </person> 
</xml> 

나는 그래서이 모델을 반복하고보기에 뱉어 수있는 사용자 정의 사람 클래스에이 XML을 역 직렬화 할 필요가있다. 나는 어떤 종류의 주조가 관련되어 있다고 확신합니다, 나는 단지 그것을하는 법을 모른다.

+0

.NET 4 같은 것입니까? 여기에 Dynamic 키워드를 실제로 사용할 수 있습니다 ... – turtlepick

답변

0

내 솔루션 :

public class Program { 
     public static void Main(string[] args) { 


      string xml = @"<xml><person><firstName>Bob</firstName><lastName>Robby</lastName></person></xml>"; 

      var doc = XElement.Parse(xml); 
      var person = (from x in doc.Elements("person") select x).FirstOrDefault(); 

      XmlSerializer serializer = new XmlSerializer(typeof(Person)); 

      var sr = new StringReader(person.ToString()); 
      // Use the Deserialize method to restore the object's state. 
      var myPerson = (Person)serializer.Deserialize(sr); 

     } 

    } 

그리고 등급 : LINQ의

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml.Serialization; 

namespace ConsoleApplication3 { 

    [XmlRoot("person")] 
    public class Person { 

     [XmlElement("firstName")] 
     public string FirstName { get; set; } 

     [XmlElement("lastName")] 
     public string LastName { get; set; } 
    } 

} 
0

는이

XDocument xmlFile = XDocument.Parse(yourXml)  
var people = (from x in xmlFile.Descendants("person") 
       select new Person(){ 
         firstname = (string)x.Element("firstname").Value, 
         lastname = (string)x.Element("lastname").Value 
       });