XmlSerializer属性在使用WCF的Web服务中无效
本文关键字:Web 服务 无效 WCF 属性 XmlSerializer | 更新日期: 2023-09-27 17:57:37
我使用WSCF.blue生成基于WSDL和xsd的web服务类。调用web服务我收到以下错误:
"XmlSerializer attribute System.Xml.Serialization.XmlAttributeAttribute is not valid in Email. Only XmlElement, XmlArray, XmlArrayItem, XmlAnyAttribute and XmlAnyElement attributes are supported when IsWrapped is true."
我使用svcutil.exe
得到了相同的结果。(VS 2010,.NET Framework 3.5)
有人听说过这个问题吗?
使用WSDL.exe
(旧的web服务.NET 2.0)生成代码会得到预期的结果,但返回值总是来自类型对象,其中作为WSCF。蓝色会给我一个特定的返回对象(例如ResponseProfileTo而不是对象)
其中一个类定义如下所示:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="ResendEmailRequest", WrapperNamespace="http://xy.com/test", IsWrapped=true)]
public partial class ResendEmailRequest
{
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://xy.com/test", Order = 0, Name = "Email")]
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Email;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://xy.com/test", Order = 1, Name = "LoginName")]
[System.Xml.Serialization.XmlAttributeAttribute()]
public string LoginName;
public ResendEmailRequest()
{
}
public ResendEmailRequest(string Email, string LoginName)
{
this.Email = Email;
this.LoginName = LoginName;
}
}
问候
尝试使用/wrapped
属性创建带有svcutil
的代码。
希望这能帮助