gpt4 book ai didi

wcf - 自定义 SOAP 错误具有错误的命名空间 http ://schemas. datacontract.org/2004/07/

转载 作者:行者123 更新时间:2023-12-04 16:51:43 24 4
gpt4 key购买 nike

我已经为一个soap错误定义了一个自定义模式,如下所示:
...

...

我在 VS 2008 中生成了代码:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.zurich.com/zsoa/corporate/common/2008/08/fault")]
[System.Xml.Serialization.XmlRootAttribute("zsoaFault", Namespace="http://schemas.zurich.com/zsoa/corporate/common/2008/08/fault", IsNullable=false)]
public partial class ZSOAFault : AbstractFault
{

...

我开发了一个自定义的 IErrorHandler(框架的一部分,交付给所有项目)它会生成这个自定义的soap错误,如下所示:
Schemas.ZSOAFault.ZSOAFault zfault = new Schemas.ZSOAFault.ZSOAFault();
zfault.message = "hello";
zfault.operation = "operation";
zfault.serviceContext = "serviceContext";
zfault.serviceEndpoint = "serviceEndpoint";
zfault.timeStamp = DateTime.Now;

FaultException<Schemas.ZSOAFault.ZSOAFault> fe = new FaultException<Schemas.ZSOAFault.ZSOAFault>(zfault);
MessageFault msgFault = fe.CreateMessageFault();

重要的是 Schemas.ZSOAFault.ZSOAault 类是从模式生成的,而不是从也导入相同模式的应用程序 wsdl 生成的。

但是当我查看这个返回的soap错误时,我看到了一个不同的命名空间:
     <detail>
<ZSOAFault xmlns="http://schemas.datacontract.org/2004/07/Schemas.ZSOAFault" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<message>hello</message>
<exception i:nil="true"/>
<operation>operation</operation>
<serviceContext>serviceContext</serviceContext>
<serviceEndpoint>serviceEndpoint</serviceEndpoint>
<timeStamp>2010-07-14T14:31:58.5437649+02:00</timeStamp>
</ZSOAFault>
</detail>

我希望在模式中看到我的自定义故障定义的命名空间,还是我错了?

谢谢
奥利弗

最佳答案

我似乎记得 WCF 中的自定义错误必须是数据协定,并且从不使用 XmlSerializer,因此您使用的那些 Xml 序列化器属性将被忽略。相反,使用 [DataContract] 属性:

[DataContract(Name="zsoaFault", Namespace="http://schemas.zurich.com/zsoa/corporate/common/2008/08/fault")]
public partial class ZSOAFault : AbstractFault {
....
}

关于wcf - 自定义 SOAP 错误具有错误的命名空间 http ://schemas. datacontract.org/2004/07/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com