c# - 如何从 ASP.NET Web API 读取 XML?

标签 c# asp.net-web-api

我有一个 Web API,可以读取 XML 并将其传递给适当的模型进行处理。

我如何接收传入的 XML?我应该使用哪种数据类型?

我是否使用 StreamReaderStreamContentXmlDocument 或其他?

最佳答案

ASP.NET Web API 使用内容协商自动将传入的 http 请求反序列化为模型类。开箱即用,这将适用于任何 XML、JSON 或 wwww-form-urlencoded 消息。

public class ComputerController : ApiController
{
    public void Post(ComputerInfo computer)
    {
        // use computer argument
    }
}

创建一个映射到 XML 属性的模型类。

public class ComputerInfo
{
    public string Processor { get; set; }
    public string HardDrive { get; set; }
}

这个传入的 XML 将被反序列化以在 Post 方法中混合计算机参数。

<ComputerInfo>
   <Processor>AMD</Processor>
   <HardDrive>Toshiba</HardDrive>
</ComputerInfo>

如果出于某种原因你想手动读取和解析传入的 xml,你可以这样做

string incomingText = this.Request.Content.ReadAsStringAsync().Result;
XElement incomingXml = XElement.Parse(incomingText);

关于c# - 如何从 ASP.NET Web API 读取 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607381/

相关文章:

c# - 从 JObject 中删除重复项

c# - 使用C#中的ExecuteScalar访问列名?

c# - 为什么此 Controller 操作的结果为空?

c# - 动态构建 webapi odata 模型

c# - 如何在 Web API 授权属性中获取请求 cookie?

c# - 如何使 WinForms UserControl 填充其容器的大小

c# - 类的两个路由属性及其方法?

c# - C# 有像 Java 那样的字符串分词器吗?

c# - ApiController Post 中的异步和等待

azure - Application Insights 依赖项跟踪不再起作用