0
我需要获得以下XML:装饰的Xml类名上的XmlSerializer
<request id="1">
<login>
<username>username</username>
<password>password</password>
</login>
</request>
但中间XML可以换到另一种类型的请求像
<request id="1">
<logout />
</request>
我试过如下:
[XmlRootAttribute(ElementName = "request", Namespace = "", IsNullable = false)]
public class Request<T>
{
[XmlAttributeAttribute(AttributeName = "id", Namespace = "")]
public string Id { get; set; }
public T Content { get; set; }
}
[XmlTypeAttribute(TypeName = "login", AnonymousType = true)]
public class LoginRequest
{
[XmlElementAttribute(ElementName = "username", Namespace = "")]
public string Username;
[XmlElementAttribute(ElementName = "password", Namespace = "")]
public string Password;
}
[XmlTypeAttribute(TypeName = "logout", AnonymousType = true)]
public class LogoutRequest
{
}
但是当我使用序列化对象
var serializer = new XmlSerializer(typeof(Request<LoginRequest>));
我得到了以下XML:
<request id="1">
<Content>
<username>username</username>
<password>password</password>
</Content>
</request>
如何重新命名的标签内容,以登录或注销?
非常感谢