【问题标题】:Asp.net Web API Serializing List<>Asp.net Web API 序列化列表<>
【发布时间】:2014-01-07 13:25:19
【问题描述】:

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

如何使&lt;ApplicationDTO/&gt; 呈现为&lt;application/&gt;

【问题讨论】:

    标签: c# asp.net asp.net-web-api xml-serialization


    【解决方案1】:

    尝试在 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; }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      相关资源
      最近更新 更多