2014-09-21 5 views
-2

У меня есть метод, который возвращает словарь (ключи и значения являются строками). Как его сериализовать? я пытаюсь сериализации mydictionary.Key, как MSISDN и mydictionary.Value, как сообщение Это мой XML-строка:Сериализация словаря для XML

<?xml version="1.0" encoding="UTF-8"?> 
<request> 
<head> 
<operation>submit</operation> 
<login>login</login> 
<password>password</password> 
<title>TITLE</title> 
<scheduled>2011-10-01 15:40:05</scheduled> 
<isbulk>false</isbulk> 
<controlid>111</controlid> 
</head> 
<body> // values from dictionary 
<msisdn>333333</msisdn> 
<message>message one</message> 
</body> 
<body> 
<msisdn>1111</msisdn> 
<message>message two</message> 
</body> 
</request> 

ниже класса рабочих, но я хочу, чтобы сериализовать MessageBodyXmlBodyTagFields тело из словаря.

#region Message Fields XML 

[XmlRoot(ElementName = "request", Namespace = "", IsNullable = false)] 

public class MessageBodyXmlRoot 
{ 

    [XmlElement("head")] 
    public MessageBodyXmlFields[] MessageBodyXmlFields { get; set; } 

    [XmlElement("body")] 
    public MessageBodyXmlBodyTagFields[] MessageBodyXmlBodyTagFields { get; set; } 
} 

public class MessageBodyXmlFields 
{ 
    [XmlElement("operation")] 
    public string Operation { get; set; } 

    [XmlElement("login")] 
    public string Login { get; set; } 

    [XmlElement("password")] 
    public string Password { get; set; } 

    [XmlElement("title")] 
    public string Title { get; set; } 

    [XmlElement("scheduled")] 
    public string Scheduled { get; set; } 

    [XmlElement("isbulk")] 
    public bool Isbulk { get; set; } 

    [XmlElement("controlid")] 
    public string Controlid { get; set; } 

} 

public class MessageBodyXmlBodyTagFields 
{ 
    [XmlElement("msisdn")] 
    public string PhoneNumber { get; set; } 

    [XmlElement("message")] 
    public string Message { get; set; } 

} 

#endregion 

спасибо.

+0

Добавить больше контекста и требований. Как-то у вас уже есть результат? Или это спецификация? –

+0

является '// значениями словаря' действительно частью вашего xml? – Default

+0

вы говорите, что пытались его сериализовать. что случилось, когда вы пробовали? вы получили сообщение об ошибке? это сработало? – Default

ответ

0

Предполагая, что фактическая сериализация уже работает, и вам нужно всего лишь способ заполнить данные:

Dictionry<string, string> tags = SomeMethod(); 

messageBody.MessageBodyXmlBodyTagFields = tags 
     .Select(kv => new MessageBodyXmlBodyTagFields 
     { PhoneNumber = kv.Key, Message = kv.Value }) 
     .ToArray(); 
Смежные вопросы