IT源码网

c#之在 C# 中从 SOAP 生成不同的异常

dyllove98 2025年05月04日 程序员 21 0

我们有一个用 java 编写的服务器,并提供一些 Web 服务...其中一些会抛出自定义异常,服务器将其发送到用户应用程序。

应用程序是用 C# 编写的。我希望能够在用户应用程序中捕获这些异常并再次抛出它们。

我知道有可能抛出一般的 SOAP 异常,但我想抛出与服务器上相同的异常。

我知道如何为服务生成 wsdl 文件和 xsd 文件,还描述了这些异常,如果我使用 xsd.exe 我知道如何生成与异常类似的 C# 类,但它们不是异常: (

所以我不确定如何生成异常以及如何将 SOAP 故障代码解释为正确类型的异常...

SOAP 中的故障代码示例:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
   <soap:Body> 
      <soap:Fault> 
         <faultcode>some info</faultcode> 
         <faultstring>Fault occurred while processing.</faultstring> 
         <detail> 
            <ns1:MyException xmlns:ns1="http://xxx/"> 
               <den xsi:type="ns2:day" xmlns:ns2="http://xxx/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">THURSDAY</den> 
            </ns1:MyException> 
         </detail> 
      </soap:Fault> 
   </soap:Body> 
</soap:Envelope> 

有什么想法吗?你以前做过这样的事吗...?甚至有可能吗? 谢谢

请您参考如下方法:

终于解决了。 在 Java 中,只需在 webservice 方法之后编写 throws MyException 即可。 然后生成wsdl和xsd。 通过 svcutils.exe 从 wsdl 和 xsd 生成 C# 代码

您可以使用您的网络服务并捕获以下错误:

FaultException<MyException> ex 

其中 ex 将详细了解 MyException 的所有属性。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!