加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 19:27:26 所属栏目:asp.Net 来源:网络整理
导读:我正在创建一个xml的产品源,它需要完全匹配客户端方案. 我正在使用web api.我希望属性extractDate是一个属性.以下代码输出extractDate作为元素而不是属性 public Feed GetProducts() { var feed = new Feed() { extractDate = "extractDate",incremental = t
我正在创建一个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<>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读