WebServiceはカスタムオブジェクトで発生したエラーを返します

5100 ワード

プロジェクトでは、外部プログラムがプロジェクトデータを呼び出す必要があるため、WebServiceを通じていくつかの外部呼び出し方法が公開されました.
サービス内のメソッドは、結果セットオブジェクト
に戻る
    /// <summary>

    ///  

    /// </summary>

    [Serializable]

    public class publicAlert

    {

        /// <summary>

        ///  

        /// </summary>

        public bool isOk { get; set; }

        /// <summary>

        ///  

        /// </summary>

        public string message { get; set; }

        /// <summary>

        ///  

        /// </summary>

        public object tag { get; set; }



        /// <summary>

        ///  

        /// </summary>

        /// <param name="boolres"> </param>

        /// <param name="resmess"> </param>

        public publicAlert(bool boolres, string resmess)

        {

            isOk = boolres;

            message = resmess; 

        }

        public publicAlert()

        { }



    }

このオブジェクトには、[Serializable]タグをシーケンス化しましたが、プロパティtagがobjectタイプであり、任意のオブジェクトを受信できます.
プログラムでtagがint,stringなどの非カスタムタイプを付与すると、プログラムは正常に動作します.
カスタムオブジェクトを割り当てると、プログラムはエラーを報告します.
  XML  。 ---> System.InvalidOperationException:   ws_obj+MyObj。  XmlInclude   SoapInclude  。

[System.Xml.Serialization.XmlInclude(typeof(" "))]

例:
        [System.Xml.Serialization.XmlInclude(typeof(AppProvider))]

        public publicAlert ProviderLogin(string LoginName, string LogginPwd)

        {

            publicAlert pub = new publicAlert();

            pub.isOk = true;

            pub.message = "";

            AppProvider apro=new AppProvider();

            pub.tag = apro;



            return pub;

        }

これにより、プログラムは正常に動作します.