【发布时间】:2017-11-22 18:26:10
【问题描述】:
如何为saop信封消息实现soap接收器c# 我正在将我的应用程序与旧系统集成,该系统应该响应我的系统作为回调响应。 我的网络服务应该会收到这条肥皂消息
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:NotifySOAPHeader xmlns:ns1="http://www.huawei.com.cn/schema/common/v2_1">
<ns1:traceUniqueID>504021505821207281129180006002</ns1:traceUniqueID>
</ns1:NotifySOAPHeader>
</soapenv:Header>
<soapenv:Body>
<ns2:processRequest xmlns:ns2="http://b2b.mobilemoney.mtn.zm_v1.0/">
<serviceId>101</serviceId>
<parameter>
<name>ProcessingNumber</name>
<value>12121212</value>
</parameter>
<parameter>
<name>senderID</name>
<value>MOM</value>
</parameter>
<parameter>
<name>AcctRef</name>
<value>112233</value>
</parameter>
<parameter>
<name>RequestAmount</name>
<value>1212</value>
</parameter>
<parameter>
<name>paymentRef</name>
<value>12121</value>
</parameter>
<parameter>
<name>ThirdPartyTransactionID</name>
<value>12112</value>
</parameter>
<parameter>
<name>MOMAcctNum</name>
<value>121212</value>
</parameter>
<parameter>
<name>CustName</name>
<value>121212</value>
</parameter>
<parameter>
<name>TXNType</name>
<value>12121</value>
</parameter>
<parameter>
<name>StatusCode</name>
<value>12121</value>
</parameter>
<parameter>
<name>OpCoID</name>
<value>0</value>
</parameter>
</ns2:processRequest>
</soapenv:Body>
</soapenv:Envelope>
如何构建接受此肥皂消息的网络服务
【问题讨论】:
-
“web-service”是一个模糊的术语,你的“服务”到底是什么? BRAHIM 的答案可能在正确的轨道上,但没有理由进行任何字符串操作。此外,如果服务公开了它的元数据,您可以尝试将服务引用添加到您的项目中,它会完成所有艰苦的工作 - 但不清楚哪个服务正在调用谁。
-
@Crowcoder 我正在做一个字符串操作只是为了省略命名空间操作的问题,我认为在性能方面比在 xml 元素上这样做要好得多
-
@BRAHIMKamel,这就是
XNamespace的用途。如果你不能依赖它是一致的,你总是可以使用XName.LocalName -
@BRAHIMKamel 我非常不同意一堆索引和子字符串和
Replace是 KISS,xml 有丰富的 api 和 IMO 应该使用它。此外,这是 xml,而不是 JSON。
标签: c# asp.net web soap service