2011-01-05 5 views
0

一般的な質問が必要です。私は私のiPhoneにこれを書いているので、私の前にコードがありません。ASP.NET MVC 2:SPROCレスポンスを逆シリアル化する

特定のXMLスキーマを表すクラスがあります。私はこのXMLを返すSPROCを持っています。私がする必要があるのは、XMLをこのクラスに非直列化することです。

XML:

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

私は、私は、このモデルをループし、ビューでそれを吐き出すことができますカスタム人クラスには、このXMLをデシリアライズする必要があります。私はいくつかの種類の鋳造が関係していると確信しています、私はちょうどそれを行う方法がわかりません。

+0

.NET 4のようなものでしょうか?あなたは実際にここで動的キーワードを使うことができます... – 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 
       }); 
関連する問題