0
我試圖使用序列化XmlSerializer的XmlSerializer的 - 元素名稱爲泛型列表類
我期待着得到這樣一個對象到XML:
<User>
<username>administrator</username>
<email>[email protected]</email>
<roles>
<whatever id="D3DCBCDA-AD61-4764-B5A1-057D654F1C26">
<role>admin</role>
</whatever>
</roles>
</user>
但相反我得到這個:
<User>
<username>administrator</username>
<email>[email protected]</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 = "[email protected]",
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; }
}
}
我試圖來裝飾類RoleDTO與[XmlRoot("whatever")]
,[XmlElement("whatever")]
沒有更迭。
任何想法?
似乎我省略了最明顯的東西:)謝謝先生 –