在MVC 4中更改REST方法响应XML节点名称

本文关键字:XML 响应 节点 方法 REST MVC | 更新日期: 2023-09-27 18:26:11

我们正在使用MVC4和添加的方法构建REST服务,如:

    public IEnumerable<Contact> GetAllContacts()
    {
        return repository.GetAll();
    }

此方法在XML中的响应生成为:

<ArrayOfContact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Contact>
    <Id>1</Id>
    <Name>Alice</Name>
    <Email>alice@example.com</Email>
  </Contact>
  <Contact>
    <Id>2</Id>
    <Name>Bob</Name>
    <Email>bob@example.com</Email>
  </Contact>
  <Contact>
    <Id>3</Id>
    <Name>Charles</Name>
    <Email>charles@example.com</Email>
  </Contact>
</ArrayOfContact>

我想更改标签<联系人安排>至<联系人>。我知道如果它是一个类的属性,那么我们可以向属性添加属性来更改它

但是有可能更改响应的根节点吗?

在MVC 4中更改REST方法响应XML节点名称

创建一个classe Contacts很容易修复它。

[DataContract(Namespace = "a namespace",Name="Contacts")]
public class Contacts
{
    private List<Contact> contacts= null;
    [DataMember]
    public List<Contact> Contacts
    {
        get
        {
            if (contacts == null)
            {
                contacts = new List<Contact>();
            }
            return contacts;
        }
        set
        {
            contacts= value;
        }
    }
}

然后您将得到一个具有所需标头的XML。