0

我有一个由 JSON 和 XML 客户端使用的 asp.net (get) Web API。是否有任何类型的属性可以用来装饰我的代码,从而更改各种 XML 模式和 JSON 对象名称?

[WhatGoesHere("Record")]
public class AbcRecord
{
    public bool IsVaid { get; set; }
    [WhatGoesHere("Items")]
    public IEnumerable<AbcItem> AbcItems { get; set; }
}
<Record xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MobilePortal.Library">
  <IsVaid>true</IsVaid>
  <Items>
    ...
  </Items>
</Record>

或等效的 JSON

4

2 回答 2

3

Web API 的默认 XML 和 JSON 格式化程序都支持 DataContract 和 DataMember 属性。所以你的类型看起来像这样:

[DataContract(Name = "Record")]
public class AbcRecord
{
    [DataMember]
    public bool IsVaid { get; set; }
    [DataMember(Name = "Items")]
    public IEnumerable<AbcItem> AbcItems { get; set; }
}
于 2013-06-05T21:29:36.303 回答
0

你可以在你的类上使用这个属性来自定义命名空间:

[DataContract(Namespace="http://example.com/namespace")]

我认为默认情况下 JSON 中不包含任何命名空间,因此此属性不会影响它。

于 2013-06-05T21:27:46.507 回答