现在已经2天了。我正在尝试将复杂数据发送到vb.net WCF服务。 这是服务请求:
class saveLoadParts extends AsyncTask<List<String>, String, String>{
@Override
protected String doInBackground(List<String>... params) {
List<String> checkList = new ArrayList<String>();
checkList = oldList;
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME4);
SoapObject soapLogs = new SoapObject(NAMESPACE, "checkList");
for (String i : checkList){
soapLogs.addProperty("ItemList", i);
}
request.addSoapObject(soapLogs );
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
HttpTransportSE transport = new HttpTransportSE(URL);
try {
transport.call(GETUSER_SOAP_ACTION + METHOD_NAME4, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
finalResult = response.toString();
}catch (SoapFault e) {
e.printStackTrace();
} catch (HttpResponseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
return finalResult;
}
@Override
protected void onPostExecute(String result) {
if (!result.equals("")){
Toast.makeText(OrderDetailView.this, "List Stored",Toast.LENGTH_SHORT).show();
}
}}
这是我的VB.net代码
Public Class ItemList
Public abc As String
End Class
Function SaveLoadParts(ByVal checkList As ItemList()) As String Implements IService1.SaveLoadParts
Dim a As String = checkList(0).abc.ToString()
Return a
End Function
我已经尝试了几乎所有我可以在互联网上找到的东西,它总是给我一个错误
Now I am getting this.
SoapFault - faultcode:&#39; a:反序列化失败&#39; faultstring:&#39;格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:checkList时出错。 InnerException消息在第1行位置361中为“错误”。元素&#39; http ...&#39;包含映射到名称&#39; http ...&#39;的类型的数据。反序列化器不知道映射到此名称的任何类型。考虑使用DataContractResolver或添加对应于&#39; checkList&#39;到已知类型列表 - 例如,通过使用KnownTypeAttribute属性或将其添加到传递给DataContractSerializer的已知类型列表。&#39;。有关详细信息,请参阅InnerException。&#39; faultactor:&#39; null&#39; detail:null
请帮助!!