WCF SOAP - 从子节点中删除命名空间

2023-12-14

我正在构建一个服务,并且有一个客户端需要我尝试在我的肥皂服务中接收的特定格式的 xml。我遇到的问题是,当我需要仅在根节点上时,命名空间前缀应用于子节点。下面是在soapui中为请求生成的soap信封:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:contact.com">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:ContactNotification>
         <!--Optional:-->
         <urn:Identifier>
            <!--Optional:-->
            <ID>122</ID>
         </urn:Identifier>
         <!--Optional:-->
         <urn:Details>
            <!--Optional:-->
            <ContactPerson>c</ContactPerson>
         </urn:Details>
      </urn:ContactNotification>
   </soapenv:Body>
</soapenv:Envelope>

我需要保留前缀但将其从中删除 and 所以信封应该是这样的:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:contact.com">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:ContactNotification>
         <!--Optional:-->
         <Identifier>
            <!--Optional:-->
            <ID>122</ID>
         </Identifier>
         <!--Optional:-->
         <Details>
            <!--Optional:-->
            <ContactPerson>c</ContactPerson>
         </Details>
      </urn:ContactNotification>
   </soapenv:Body>
</soapenv:Envelope>

我需要在 WCF 中使用 XML Serializer 因为需要支持 xml 属性(上面的示例是精简版本)

这是我的课程的代码:

using System.ServiceModel;
[System.Xml.Serialization.XmlTypeAttribute (Namespace="")]


public partial class Identifier
{

    private string idField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Namespace="")]
    public string ID
    {
        get
        {
            return this.idField;
        }
        set
        {
            this.idField = value;
        }
    }
}


using System.ServiceModel;

[System.Xml.Serialization.XmlType(Namespace ="")]

public partial class Details
{
    private string contactPersonField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Namespace="")]
    public string ContactPerson
    {
        get
        {
            return this.contactPersonField;
        }
        set
        {
            this.contactPersonField = value;
        }
    }
}

这些是我的服务接口/实现:

using System.Web.Configuration;
using System.Xml.Serialization;

namespace ContactService
{   
    [ServiceContract(Namespace = "urn:contact.com")]
    [XmlSerializerFormat]

    public interface IContactService
    {
        [OperationContract]
        [XmlSerializerFormat]
        void ContactNotification( Identifier Identifier, Details Details);
    }
}

using System.ServiceModel;
using System.Web.Configuration;
using System.Xml;
using System.Xml.Serialization;

namespace ContactService
{
    [ServiceBehavior(Namespace= "urn:contact.com")]
    [XmlSerializerFormat]
    public class ContactService : IContactService
    {
        [OperationBehavior]
        public void ContactNotification(Identifier Identifer, Details Details)
        {

        }
    }

已四处寻找但找不到解决方案。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF SOAP - 从子节点中删除命名空间 的相关文章

随机推荐

  • Cloud Firestore 中多租户的命名空间

    我们如何在 Firestore 中设置不同的数据库 命名空间 这将有助于构建多租户 SaaS 产品 这是正在考虑的事情 但还没有确定的计划 当前的方法需要您创建单独的项目 集合名称方案可能是可行的 但您将遇到项目的复合索引限制
  • 为什么Python对可以嵌套的静态块的数量有限制?

    Python 中静态嵌套块的数量限制为 20 个 即嵌套19for循环就可以了 虽然非常耗时 O n 19 太疯狂了 但嵌套 20 会失败 并显示 SyntaxError too many statically nested blocks
  • MVC 2 接口上的 UpdateModel,是否应该忽略 ModelBinderAttribute?

    我有从特定抽象类的实例发布数据的表单 public abstract class IRestriction public string Name get set public abstract IModelBinder GetBinder
  • 如何将模型或字符串传递给 angularjs 中的指令?

    我正在研究一个指令 其中参数之一可以是模型 动态值 有时也可以是字符串 我能做到这一点的唯一方法是使用 有一个更好的方法吗
  • 搜索 HTML 表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我已经用 HTML 创建了
  • 之前触发 onchange 时未触发 onclick 事件

    我这里有一个有趣的问题 我有一个文本区域 其中链接了一个 onchange 事件 然后我有一个链接到 onclick 事件的按钮 当在文本区域上触发 onchange 事件时 将处理放入文本区域的文本 当我单击文本区域之外的内容时 通常会发
  • 使用 pyodbc 和 mysql8 的参数化查询对于 int 数据类型的列返回 0

    蟒蛇 2 7 12 pyodbc 4 0 24 操作系统 Ubuntu 16 4 数据库 MySQL 8 驱动程序 MySQL 8 预期行为 结果集应在数据类型为 int 的列中包含数字 实际行为 所有 int 数据类型的列都有 0 如果使
  • 带有 ListBox 的 WPF ListBox - UI 虚拟化和滚动

    我的原型显示包含 页面 的 文档 由缩略图表示 每个文档可以有 任意数量的页面 例如 可能有 1000 个文档 每个文档 5 页 或 5 个文档 每个文档 1000 页 每个 或介于两者之间 文档不包含其他文档 在我的 xaml 标记中我有
  • 当我的整个应用程序锁定在纵向模式时,以横向模式全屏播放视频

    我想以全屏横向模式播放视频 我的应用程序锁定在纵向模式 如何实现这一点 请帮我 提前致谢 swift 3 中最简单的解决方案 将其添加到您的应用程序委托中 func application application UIApplication
  • 在 Firebase 中获取子项计数

    请问我如何简单地从 firebase 查询中获取子项计数 例如 假设我使用包含 10 个子项的数据库查询 我如何获取该值 因为我尝试使用onChildChanged 事件并从中获取价值snapshot 但效果并不好 这是因为首先它会获取数字
  • 无法连接到服务器 - 与网络相关或特定于实例的错误

    尝试连接到 SQL Server 时出现以下错误 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误 服务器未找到或无法访问 验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接 提供程序 命名管道提供
  • 将派生类指针数组转换为基类指针数组

    考虑这样的继承层次结构 A B1 B2 C D 在C 中实现如下 class A public A virtual A 0 double a A A class B1 virtual public A public B1 virtual B
  • 如何计算 numpy 数组沿轴的平均值? [复制]

    这个问题在这里已经有答案了 我是Python新手 这是我的三维数组 my data numpy zeros index1 index2 index3 为了便于说明 假设尺寸为 index1 5 index2 4 index3 100 我想计
  • 使用 SNI 选项以编程方式在 IIS 8 上添加绑定

    我正在尝试使用 Microsoft Web Administration 库 NET Framework 创建 IIS 8 的绑定 该绑定已检查标志 SNI 服务器名称指示 这对我来说是必要的 因为我想在 IIS 下为同一个网站获取多个 S
  • Swing、Java 和多线程以及着色按钮

    是的 这是家庭作业 是的 我完全被困住了 这是要点 我创建了一个 JFrame 有 3 个面板 顶部 中间 底部 底部面板中有 3 个按钮 红色 绿色和蓝色 顶部面板中有 3 个文本字段 用于显示单击相应按钮的次数 每个按钮最多允许 10
  • 使用平衡组的正则表达式

    我有一个基本的文本模板引擎 它使用如下语法 foo bar IF MY VAR some text IF OTHER VAR some other text ENDIF ENDIF bar foo 我对用于解析它的正则表达式有一个问题 它没
  • Javascript:比较运算符中操作数的顺序[重复]

    这个问题在这里已经有答案了 我看到很多人写作有什么具体原因吗 if 1 a 代替 if a 1 我已经给出了一个答案 其中我写了类似的内容Array obj constructor当有人问我他经常看到人们这样写而不是这样写obj const
  • 使用 etree 从文件中解析 xml 在读取字符串时有效,但在读取文件时则无效

    我对 Python 和 SO 来说是一个相对新手 我有一个 xml 文件 需要从中提取信息 我已经为此苦苦挣扎了好几天 但我想我终于找到了可以正确提取信息的东西 现在我在获得正确的输出时遇到了麻烦 这是我的代码 from xml impor
  • Firebase 函数先解析请求正文,然后才能在 Express 中处理它

    我正在尝试处理 Firebase 函数中的无效请求 因此使用无效的 JSON 发出发布请求 目的是在 Express 中处理它 但我得到400 错误 语法错误 JSON 中位置 20 处出现意外标记 a 在它到达 Express 层之前 最
  • WCF SOAP - 从子节点中删除命名空间

    我正在构建一个服务 并且有一个客户端需要我尝试在我的肥皂服务中接收的特定格式的 xml 我遇到的问题是 当我需要仅在根节点上时 命名空间前缀应用于子节点 下面是在soapui中为请求生成的soap信封