如何从客户端向服务器端发送/传递ArrayList

时间:2018-06-06 13:19:10

标签: wcf xamarin arraylist xamarin.forms

在我的网络服务中,我实现了一个SaveSurveyAnswerAsync方法,其中我的一个参数是arraylist。这就是我将如何读取来自应用程序的xamarin调用的数据(已经实现)。

private DataTable ConvertArrayToDT(ArrayList Answer)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("int_SurveyQuestionID", typeof(int));
            dt.Columns.Add("int_SurveyAnswerID", typeof(int));

            foreach (string item in Answer)
            {
                DataRow dr = dt.NewRow();
                dr["int_SurveyQuestionID"] = item[0].ToString();
                dr["int_SurveyAnswerID"] = item[1].ToString();
                dt.Rows.Add(dr);
            }

            return dt;
        }

这是我的保存方法:

[OperationContract]
[WebInvoke(Method = "Post",
 BodyStyle = WebMessageBodyStyle.WrappedRequest,
 ResponseFormat = WebMessageFormat.Json
 )]

string SaveSurveyAnswer(string ClientCode, int OrganizationID, string UserID, int SurveyID, int UserSurveyID, ArrayList Answer);

在xamarin中,它要求我提供ObservableCollection对象。现在,当我发送一个observablecollection列表时,它会返回一个异常(这就是异常即将到来的基本原因)。所以现在的问题是,当我要求我提供xamarin中的observablecollection列表时,我如何发送一个arraylist

以下是问题截图ScreenShot

1 个答案:

答案 0 :(得分:0)

在这种情况下,我会建议你使用json文件和serialzes,就像你可以保存为字符串一样,当你想要使用它时,只需要deserialize它。

示例:

序列化:

var json = JsonConvert.SerializeObject(t);

Derialize to a object:

var json = await httpClient.GetStringAsync(WebServiceUrl+context);