Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XmlSerializer-泛型列表类的元素名称_C#_.net_Xml_Serialization_Xml Serialization - Fatal编程技术网

C# XmlSerializer-泛型列表类的元素名称

C# XmlSerializer-泛型列表类的元素名称,c#,.net,xml,serialization,xml-serialization,C#,.net,Xml,Serialization,Xml Serialization,我正在尝试使用XmlSerializer将对象序列化为XML 我希望得到这样的东西: <User> <username>administrator</username> <email>administrator@email.com</email> <roles> <whatever id="D3DCBCDA-AD61-4764-B5A1-057D654F1C26"

我正在尝试使用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>

管理员
administrator@email.com
管理
但我得到的是:

<User>
    <username>administrator</username>
    <email>administrator@email.com</email>
    <roles>
        <RoleDTO id="D3DCBCDA-AD61-4764-B5A1-057D654F1C26">
            <role>admin</role>
        </RoleDTO>
    </roles>
</User>

管理员
administrator@email.com
管理
代码

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
             };
XmlSerializer x=new System.Xml.Serialization.XmlSerializer(Xml.GetType());
XmlSerializer xsSubmit=新的XmlSerializer(typeof(UserDTO));
StringWriter sww=新StringWriter();
XmlWriter=XmlWriter.Create(sww);
xsSubmit.Serialize(编写器、用户);
var xmll=sww.ToString();//我的xml
List rl=新列表();
rl.Add(newroledto{roleId=newguid(“D3DCBCDA-AD61-4764-B5A1-057D654F1C26”),role=“admin”});
UserDTO user=新UserDTO
{
用户名=“管理员”,
电子邮件=”administrator@email.com",
角色=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; }
    }
}
namespace Model.DTO
{
[XmlRoot(“用户”)]
公共类UserDTO
{
公共字符串用户名{get;set;}
公共字符串电子邮件{get;set;}
公共列表角色{get;set;}
}
公共类角色
{
[XmlAttribute(“Id”)]
公共Guid roleId{get;set;}
公共字符串角色{get;set;}
}
}
我试图用
[XmlRoot(“whatever”)]
[XmlElement(“whatever”)]
来装饰类角色,但没有成功


有什么想法吗?

您需要用

[XmlElement("whatever")] 
不是班上的角色

public class UserDTO
{
    public string username { get; set; }
    public string email { get; set; }
    [XmlElement("whatever")] 
    public List<RoleDTO> role { get; set; }
}
公共类UserDTO
{
公共字符串用户名{get;set;}
公共字符串电子邮件{get;set;}
[XmlElement(“任意”)]
公共列表角色{get;set;}
}

看来我忽略了最明显的一件事:)谢谢你,先生