我有返回Dictionary的方法(键和值是字符串)。如何序列化它? 我正在尝试将mydictionary.Key序列化为 msisdn ,将mydictionary.Value序列化为消息 这是我的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>
下面的类工作,但我想从Dictionary中序列化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)
假设实际的序列化已经有效,您只需要一种方法来填充数据:
Dictionry<string, string> tags = SomeMethod();
messageBody.MessageBodyXmlBodyTagFields = tags
.Select(kv => new MessageBodyXmlBodyTagFields
{ PhoneNumber = kv.Key, Message = kv.Value })
.ToArray();