2014-09-21 42 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

添加更多的內容和要求。不知何故,你已經有了結果?或者是一個規範? – 2014-09-21 15:49:16

+0

是//字典中的值嗎?真的是你的xml的一部分嗎? – Default 2014-09-21 15:50:00

+0

你說你試圖序列化它。當你嘗試時發生了什麼?你有錯誤嗎?它工作? – Default 2014-09-21 15:51:05

回答

0

假設實際已經系列化工作,你只需要一種方法來填充數據:

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

messageBody.MessageBodyXmlBodyTagFields = tags 
     .Select(kv => new MessageBodyXmlBodyTagFields 
     { PhoneNumber = kv.Key, Message = kv.Value }) 
     .ToArray();