asp.net-web-api – 如何使用web api和模型绑定定义xml属性

前端之家收集整理的这篇文章主要介绍了asp.net-web-api – 如何使用web api和模型绑定定义xml属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个xml的产品源,它需要完全匹配客户端方案.

我正在使用web api.我希望属性extractDate是一个属性.以下代码输出extractDate作为元素而不是属性

public Feed GetProducts()
    {
             var Feed = new Feed()
             {
                 extractDate = "extractDate",incremental = true,name = "name",Brands = GetBrands(),Categories = GetCategories(),Products = GetProducts()
             };


         return Feed;
    }

这是我的模型Feed.请注意,以下似乎不会将元素转换为属性

[XmlAttribute(AttributeName = "extractDate")]
public class Feed
{
    [XmlAttribute(AttributeName = "extractDate")] //attribute is ignored
    public string extractDate { get; set; }
    public bool incremental { get; set; }
    public string name { get; set; }
    public List<Brand> Brands { get; set; }
    public List<Category> Categories { get; set; } 
    public List<Product> Products { get; set; } 
}

我如何输出

<Feed extractDate="2012/01/01" 

// other logic

/>

解决方法

默认情况下,Web API在XmlMediaTypeFormatter中使用DataContractSerializer,这可能就是您没有看到属性修饰生效的原因.您是否在XmlMediaTypeFormatter上启用了XmlSerializer以查看预期输出

config.Formatters.XmlFormatter.UseXmlSerializer = true;

此外,您也可以使用以下api为特定类型设置XmlSerializer:

config.Formatters.XmlFormatter.SetSerializer<>

猜你在找的asp.Net相关文章