2014-09-21 43 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();