RESTful 服务未按预期返回 XML

RESTful service not returning expected XML

我有一个 WCF Rest 服务,目前 returns 一个 xml 响应,如下所示。

但是,它应该以下面的格式返回,我不能让它这样输出。任何帮助获得正确输出的帮助将不胜感激。

<app:get-order-details-response xmlns:apps="http://app.com/123/abc/">
    <organisation-id>123</organisation-id>
    <app2app-id>Mer001</app2app-id>
    <order-id>100</order-id>
    <order-price>0</order-price>
    <response-handler>yourapp://response/parameter1</response-handler>
    <failure-response-handler>yourapp://response/parameter2</failure-response-handler>        
</app:get-order-details-response>

生成当前xml的代码如下所示。是因为我要返回一个 XmlElement 吗?我已经尝试返回 XmlDocument 并更改界面中的代码来执行此操作,但这并没有解决这个问题。

public XmlElement GetOrderDetails(string organisationID, string paymentReference, int paymentType, string deviceType)
    {
        .....
        .....
        .....
        XmlDocument doc = new XmlDocument();

        XmlElement root = doc.CreateElement("app:get-order-details-response", "http://app.com/123/abc/");
        doc.AppendChild(root);
        CreateElement(doc, root, "organisation-id", organisationID);
        CreateElement(doc, root, "app2app-id", app2appID);
        CreateElement(doc, root, "order-id", paymentReference;
        CreateElement(doc, root, "order-price", paymentAmount);
        CreateElement(doc, root, "response-handler", responseHandler);
        CreateElement(doc, root, "failure-response-handler", failureResponseHandler);

        return root;
    }

接口:

[ServiceContract]
public interface IPaymentService
{
    [OperationContract]
    [WebInvoke(RequestFormat = WebMessageFormat.Xml, 
        ResponseFormat = WebMessageFormat.Xml, 
        BodyStyle = WebMessageBodyStyle.Wrapped, 
        Method = "GET",
        UriTemplate = "/getorderdetails/v1/aa/order/{organisationID}/{paymentReference}?paymentType={paymentType}&deviceType={deviceType}")]
    XmlElement GetOrderDetails(string organisationID, string paymentReference, int paymentType, string deviceType);
}

更新:

按照 Pankaj 下面的建议进行修改后,输出显示在 IE 中。但是,在针对测试工具包进行测试时,我收到一条错误消息,提示“无法找到元素 'app:get-order-details-response' 的声明。这是什么意思?

尝试更改

BodyStyle = WebMessageBodyStyle.Wrapped

BodyStyle = WebMessageBodyStyle.WrappedRequest

OR

BodyStyle = WebMessageBodyStyle.Bare