【发布时间】:2015-05-06 12:01:38
【问题描述】:
我正在尝试使用 XmlSerializer 将对象序列化为 XML
我希望得到这样的东西:
<User>
<username>administrator</username>
<email>administrator@email.com</email>
<roles>
<whatever id="D3DCBCDA-AD61-4764-B5A1-057D654F1C26">
<role>admin</role>
</whatever>
</roles>
</user>
但我却得到了这个:
<User>
<username>administrator</username>
<email>administrator@email.com</email>
<roles>
<RoleDTO id="D3DCBCDA-AD61-4764-B5A1-057D654F1C26">
<role>admin</role>
</RoleDTO>
</roles>
</User>
代码
XmlSerializer x = new System.Xml.Serialization.XmlSerializer(xml.GetType());
XmlSerializer xsSubmit = new XmlSerializer(typeof(UserDTO));
StringWriter sww = new StringWriter();
XmlWriter writer = XmlWriter.Create(sww);
xsSubmit.Serialize(writer, user);
var xmll = sww.ToString(); // My xml
List<RoleDTO> rl = new List<RoleDTO>();
rl.Add(new RoleDTO { roleId = new Guid("D3DCBCDA-AD61-4764-B5A1-057D654F1C26"), role = "admin" });
UserDTO user = new UserDTO
{
username = "administrator",
email = "administrator@email.com",
role = rl
};
型号
namespace Model.DTO
{
[XmlRoot("User")]
public class UserDTO
{
public string username { get; set; }
public string email { get; set; }
public List<RoleDTO> role { get; set; }
}
public class RoleDTO
{
[XmlAttribute("Id")]
public Guid roleId { get; set; }
public string role { get; set; }
}
}
我试图用 [XmlRoot("whatever")] , [XmlElement("whatever")] 装饰类 RoleDTO 没有成功。
有什么想法吗?
【问题讨论】:
标签: c# .net xml serialization xml-serialization