2

WSDL と xsd に基づいて Web サービス クラスを生成するために WSCF.blue を使用しています。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)

この問題について聞いたことがある人はいますか?

(古いWebサービス.NET 2.0)を使用してコードを生成するWSDL.exeと、期待される結果が得られますが、戻り値は常に型オブジェクトからのものであり、WSCF.blueは特定の戻りオブジェクト(オブジェクトではなくResponseProfileDtoなど)を取得します。

クラス定義の 1 つは、次のようになります。

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

よろしく

4

1 に答える 1

3

/wrapped属性を使用して、 でコードを作成してみてくださいsvcutil

お役に立てれば

于 2013-02-04T15:46:56.853 に答える