【问题标题】:ASP.Net Web API XML Serialization ArrayOfASP.Net Web API XML 序列化 ArrayOf
【发布时间】:2012-08-29 02:31:07
【问题描述】:

我正在使用 ASP.Net Web API (WCF 4.0) 方法返回 List<WorkItem>

这是在表单中返回一个带有 ArrayOf... 的 xml

<ArrayOfworkitem xmlns="http://schemas.datacontract.org/2004/07/AgilePortalServices.DataContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <workitem>
        <id>28</id>
        <title>Test</title>
    </workitem>
    <workitem>
        <id>27</id>
        <title>Test Bug</title>
    </workitem>
</ArrayOfworkitem>

但我希望它返回为

<workitems>
    <workitem>
        <id>28</id>
        <title>Test</title>
    </workitem>
    <workitem>
        <id>27</id>
        <title>Test Bug</title>
    </workitem>
</workitems>

我该怎么做?

【问题讨论】:

    标签: xml wcf serialization asp.net-web-api


    【解决方案1】:

    这是由于使用 WCF XML 序列化程序的序列化程序,而不是默认的 XmlSerializer。

    您可以通过设置默认格式化程序来修改此设置(如果您愿意,您可以将其替换为第 3 方)。

    var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
    xml.UseXmlSerializer = true;
    

    更多信息this web-api overview

    【讨论】:

    • 我应该把这段代码放在哪里 - 我研究了 Global.asax.cs 中建议 Application_start 方法的链接,但我得到一个错误:名称 'GlobalConfiguration' 在当前上下文中不存在跨度>
    • 我刚刚重新阅读了您的问题。抱歉,您使用的是 WCF4.0 吗?还是WebAPI?您应该创建一个新的 WebAPI (ASP.Net 4.0) 项目,而不是 WCF 项目。
    • 未使用 WebAPI 项目。现在将尝试。谢谢
    猜你喜欢
    • 2020-09-19
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多