【问题标题】:remove namespace's prefix in datacontract删除数据合同中命名空间的前缀
【发布时间】:2017-06-02 09:36:56
【问题描述】:

我的问题如下:

我正在使用 WCF 创建一个 SOAP 服务,我正在使用一个名为 Boomerang SOAP & Rest Client 的 chrome 插件对其进行测试(它通过加载您的 wsdl 创建一个请求,您只需更改值)。

但是每次我的数据成员都有命名空间的前缀并且我不想要它们。

请求应如下所示:

我明白了:

这是我的服务:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.ServiceModel.Web;
using System.Text;
using Ory_Soap.DTO;

namespace Ory_Soap
{

    [ServiceContract (Namespace = "http://my.company.com")]
    [XmlSerializerFormat]
    public interface FeedbackReceiverSOAP {

        [OperationContract]
        [WebInvoke]
        void receiveProvisioningFeedback(ProvisioningFeedback provisioningFeedback);


    }



    [DataContract(Namespace = "http://my.company.com")]
    public class ProvisioningFeedback
    {
        [DataMember(Name="header")]
        public Header header { get; set; }

        [DataMember(Name = "simIdentity")]
        public SimIdentity simIdentity { get; set; }

        [DataMember(Name = "responseStatus")]
        public ResponseStatus responseStatus { get; set; }

        [DataMember(Name = "parameters")]
        public List<Parameter> parameters { get; set; }

        [DataMember(Name = "options")]
        public List<Option> options { get; set; }
    }

}

我已经尝试在我的 DataContract 上设置一个空的命名空间,但它不起作用。 我很确定我在 Datamembers 中的名称属性在这里是可选的,但我拼命尝试了这个。

你能帮我解决这个问题吗?

非常感谢!

【问题讨论】:

    标签: c# web-services wcf soap


    【解决方案1】:

    您的 DataContract 属性指定了命名空间值“http://my.company.com”,因此您获得的 xml 是正确的。如果您希望数据成员位于不同的(空)命名空间中,您可以尝试 [DataContract(Namespace = "")]。但我认为您显示为您希望它看起来的xml是不可能的。默认情况下,子元素不继承其父命名空间。你可以让他们继承他们的父母 default 命名空间。然后你的 xml 必须看起来像这样:

    <root xmlns:blah="...">
      <element1 xmlns="whatever">
        <element2/>
      </element1>
    </root>
    

    element2 现在继承 element1 的命名空间

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-11
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多