簡體   English   中英

Asp.net Web API序列化列表<>

[英]Asp.net Web API Serializing List<>

我正在使用Asp.net Web Api,並且試圖返回DTO對象的列表。

這就是我所擁有的:

// Wrapper
[DataContract(Namespace = "", Name = "get-applications-result")]
[XmlRoot(Namespace = "", ElementName = "get-applications-result")]
public class GetApplicationsResult : List<ApplicationDTO>
{

}

// DTO object
[DataContract(Namespace = "", Name = "application")]
[XmlRoot(Namespace = "", ElementName = "application")]
public class ApplicationDTO
{
    [DataMember(Name = "application-name")]
    [XmlElement(ElementName = "application-name")]
    public string ApplicationName { get; set; }
}

Global.asax我設置了

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;

但是,當我將響應從服務器返回給客戶端時,它會像這樣返回:

<get-applications-result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ApplicationDTO>
        <application-name>Application name</application-name>
    </ApplicationDTO>
</get-applications-result>

如何使<ApplicationDTO/>呈現為<application/>

嘗試在ApplicationDTO類上使用XmlTypeAttribute而不是XmlRootAttribute

[DataContract(Namespace = "", Name = "application")]
[XmlType(TypeName = "application")]
public class ApplicationDTO
{
    [DataMember(Name = "application-name")]
    [XmlElement(ElementName = "application-name")]
    public string ApplicationName { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM