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;
    }
}

问候

XmlSerializer属性在使用WCF的Web服务中无效

尝试使用/wrapped属性创建带有svcutil的代码。

希望这能帮助