2013-03-10 3 views
0

Как я могу десериализовать этот XML-объект?C# Deserialize XML в Object (со словарным полем)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<array> 
    <dict> 
    <key>key1</key> 
    <dict> 
     <key>title</key> 
     <string>Name1</string> 
     <key>price</key> 
     <string>1000$</string> 
     <key>count</key> 
     <string>60</string> 
     <key>description</key> 
     <string>some description</string> 
     <key>photoUrl</key> 
     <string>http:/someurl</string> 
    </dict> 
</dict> 
<dict> 
    <key>key2</key> 
    <dict> 
     <key>title</key> 
     <string>Name2</string> 
     <key>price</key> 
     <string>2000$</string> 
     <key>count</key> 
     <string>35</string> 
     <key>description</key> 
     <string>some description</string> 
     <key>photoUrl</key> 
     <string>http://someurl</string> 
    </dict> 
</dict> 

Я думаю, что мой объект должен иметь словарь в качестве поля, но у меня есть проблема, чтобы определить соответствующий класс в коде. Как это сделать?

Спасибо.

+0

Возможно [это] (http://www.codeproject.com/Tips/406235/A-Simple-PList-Parser-in-Csharp)? – rene

+0

Что такое DataContractSerializer? http://msdn.microsoft.com/en-US/library/system.runtime.serialization.datacontractserializer.aspx – duDE

+0

Рене, нет, он не работает. NotSupportedException. – Lumen

ответ

1

Посмотрите на Parsing .plist Files to plain XML C#. Самый высокий рейтинг answer (на данный момент) относится к C# project, который поддерживает как форматы бинарного, так и xml-plist. Посмотрите, помогает ли это.