2013-06-05 74 views
0

我有一個正在被JSON和XML客戶端使用的asp.net(get)web API。有沒有我可以修飾我的代碼的任何類型的屬性,這將改變各種XML模式和JSON對象名稱?Web API更改架構名稱

[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

回答

3

的Web API支持DataContract和DataMember兩個默認XML和JSON格式化屬性。所以,你的類型應該是這樣的:

[DataContract(Name = "Record")] 
public class AbcRecord 
{ 
    [DataMember] 
    public bool IsVaid { get; set; } 
    [DataMember(Name = "Items")] 
    public IEnumerable<AbcItem> AbcItems { get; set; } 
} 
0

您可以使用此屬性在您的類(ES)自定義命名空間:

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

我不認爲任何命名空間包含在JSON默認情況下,所以這個屬性不會影響。

+0

我好像你問如何更改架構命名空間,而不是元素名稱。 [@ Youssef's answer](http://stackoverflow.com/a/16950229/346561)對於更改XML和JSON中的元素名稱是正確的。 –