2013-06-26 2 views
1

У меня есть XML-конфигурация для привязки ярлыков приложений. Мне нужно разобрать его.Анализ XML с использованием атрибутов

<ShortcutBinding> 
    <ShortcutHandler Name ="Retail.Application.Documents.Outcome.Presentation.OutcomePresenter"> 
    <Shortcut Name="EditHeader"> 
     <Key>CTRL</Key> 
     <Key>F4</Key> 
    </Shortcut> 
    <Shortcut Name="EditItem"> 
     <Key>F4</Key> 
    </Shortcut> 
    </ShortcutHandler> 
</ShortcutBinding> 

Я знаю, что .Net имеет атрибуты для десериализации XML в объекты. Может ли кто-нибудь написать полный пример для такой десериализации, используя атрибуты.

+0

может быть это будет полезно http://msdn.microsoft.com/en-us/library/58a18dwa.aspx – Frank59

ответ

1
public class ShortcutBinding 
{ 
    public ShortcutHandler ShortcutHandler { get; set; } 
} 

public class ShortcutHandler 
{ 
    [XmlAttribute] 
    public string Name { get; set; } 

    [XmlElement("Shortcut")] 
    public List<Shortcut> Shortcuts { get; set; } 
} 

public class Shortcut 
{ 
    [XmlAttribute] 
    public string Name { get; set; } 

    [XmlElement("Key")] 
    public List<string> Keys { get; set; } 
} 

десериализации:

XmlSerializer serializer = new XmlSerializer(typeof(ShortcutBinding)); 
var binding = (ShortcutBinding)serializer.Deserialize(XmlReader.Create(path)); 
+0

еще один вопрос, как я могу преобразовать ключ из строковое представление в соответствующее представление перечисления? поэтому я хочу взять –

+0

@DmitryMartovoi просто изменит тип ключей из 'List ' '' List 'и убедитесь, что вы храните имена перечислений в xml. Например. 'CTRL' не является допустимым именем перечисления для перечисления ConsoleKey'. –

+0

, а как насчет пользовательских преобразователей? –