2010-07-08 4 views
0

Есть ли способ заполнить класс с использованием данных XML вместо JSON? Example in marc's excellent answer.XML Сериализация вместо JSON в .NET

Я хотел бы, чтобы все было как можно ближе к этому коду, за исключением ввода XML-файла вместо json.

+0

возможно дубликат [Как отобразить XML в объекты C#] (http://stackoverflow.com/questions/87621/how-do-i-map-xml -to-c-objects) –

ответ

4

Вы можете использовать :

public class Foo 
{ 
    public string Bar { get; set; } 
} 

class Program 
{ 
    public static void Main() 
    { 
     var serializer = new XmlSerializer(typeof(Foo)); 
     var xml = "<Foo><Bar>beer</Bar></Foo>"; 
     using (var reader = new StringReader(xml)) 
     { 
      var foo = (Foo)serializer.Deserialize(reader); 
      Console.WriteLine(foo.Bar); 
     } 
    } 
} 
+0

Это выглядит правильно. В прошлый раз, когда я посмотрел код сериализации, мне пришлось наложить тонны атрибутов в класс. Это не так с XmlSerializer? – 2010-07-08 06:05:21

+0

Это будет зависеть от того, какой класс вы пытаетесь сериализовать/десериализовать в структуру XML, но атрибуты yes могут понадобиться. Нет волшебства. Если структура XML не соответствует вашей структуре объекта, вам необходимо проинструктировать сериализатор, как ее обрабатывать. –

+0

Это именно то, что я хотел услышать. – 2010-07-08 06:20:21