WebServiceはカスタムオブジェクトで発生したエラーを返します
5100 ワード
プロジェクトでは、外部プログラムがプロジェクトデータを呼び出す必要があるため、WebServiceを通じていくつかの外部呼び出し方法が公開されました.
サービス内のメソッドは、結果セットオブジェクト
に戻る
このオブジェクトには、[Serializable]タグをシーケンス化しましたが、プロパティtagがobjectタイプであり、任意のオブジェクトを受信できます.
プログラムでtagがint,stringなどの非カスタムタイプを付与すると、プログラムは正常に動作します.
カスタムオブジェクトを割り当てると、プログラムはエラーを報告します.
例:
これにより、プログラムは正常に動作します.
サービス内のメソッドは、結果セットオブジェクト
に戻る
/// <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;
}
これにより、プログラムは正常に動作します.