Asp.NET核心API - 更改字段名称

时间:2018-04-23 19:50:27

标签: c# api asp.net-core .net-core asp.net-core-mvc

API如何返回自定义名称?

例如:

<UserInfo>
    <name>aaaaaa</name>
    <endpoints>
        <int>1</int>
        <int>2</int>
    </endpoints>
</UserInfo>

是从代码

生成的
public class UserInfo
{
    public string name;
    public int[] endpoints;
}

我想回复一下:

<User name="aaaaaa">
    <endpoints>
         <endpoint>1</endpoint>
         <endpoint>2</endpoint>
    </endpoints>
</User>

我怎么能

  1. 将UserInfo重命名为User
  2. 将名称定义为属性
  3. 将端点数组中的字段重命名为endpoint
  4. 我尝试过使用[DataContract][DataMember],但没有任何改变。

    编辑:我用来获取输出的方法:

        // GET api/info
        [HttpGet("info")]
        public IActionResult GetInfo([FromHeader] string auth)
        {
            if (HasAccess(auth, Endpoints.Info))
            {
                return new ObjectResult(Database.GetInfoAboutUser(auth));
            }
            else
            {
                return Unauthorized();
            }
        }
    

1 个答案:

答案 0 :(得分:1)

您在一个问题中有3个问题。但是:

第一名:

我想这就是你想要的:

[XmlType(TypeName = "User")]
public class UserInfo
{
...
}

第三:

int[] values = { 1, 2, 17, 8 };

XDocument doc = new XDocument();
doc.Add(new XElement("endpoints", values.Select( x=> new XElement("item", x))));