gpt4 book ai didi

c# - ASP.NET MVC4 Web API MediaTypeFormatter Converter 将 XElement 转换为 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:15 25 4
gpt4 key购买 nike

我正在 ASP.NET MVC4 Web API 中构建一个 API,我的一个操作返回 XML(目前以 XElement 的形式)。我无法控制数据,我只是传递它。没有我可以将其反序列化为的标准对象。

public Task<XElement> Get( string queryName, string query )...

我想做的是使用 MediaTypeFormatter 将其转换为 JSON(如果需要的话)。我已经开始编写 MediaTypeFormatter 并将其连接起来,但是当我在 Controller 上调用“Get”时,它会调用

protected override bool CanWriteType( Type type )
{
return true;
}

在 MediaTypeFormatter 中,但永远不会达到 OnWriteToStreamAsync 方法。结果只是作为字符串的 XML,例如

"<testXmlHere\/>"

有人知道如何解决这个问题吗?

谢谢

最佳答案

您的自定义格式化程序可能插入到格式化程序集合中 JsonMediaTypeFormatter 之后的格式化程序列表中。该格式化程序可以编写 XElement,它通过将 XML 表示形式编写为 JSON 字符串来实现(这是好主意还是坏主意另当别论)。将格式化程序添加到集合时,使用 Insert 而不是 Add 方法:

GlobalConfiguration.Configuration.Formatters.Insert(
0, new MyCustomMediaTypeFormatter());

关于c# - ASP.NET MVC4 Web API MediaTypeFormatter Converter 将 XElement 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9578109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com