【发布时间】:2015-12-07 16:14:22
【问题描述】:
我的 RESTFUL Web 服务和我的 Web 应用程序中有这 2 个类
public class Service
{
public int ID { get; set; }
public int HCode { get; set; }
public int HUserID { get; set; }
public string PatientNID { get; set; }
public List<Document> DocumentList { get; set; }
public int ServiceTypeID { get; set; }
public string TestName { get; set; }
public string Comment { get; set; }
public DateTime Date { get; set; }
}
public class Document
{
public int ID { get; set; }
public int ServiceID { get; set; }
public string FileName { get; set; }
public string Extension { get; set; }
public byte[] ByteDocument { get; set; }
}
这是网络服务中接收对象并返回列表的功能
public List<Serivce> GetServiceByHUserID(Service service)
{
SqlCommand cmd = new SqlCommand(
"SELECT *"
+ " FROM TransactionHistory"
+ " WHERE UserID = @HUserUserIDParam"
, con);
cmd.Parameters.Add(
"@HUserUserIDParam", SqlDbType.NVarChar).Value = service.HUserID;
return GetServiceResponse(cmd);
}
private List<Service> GetServiceResponse(SqlCommand cmd)
{
List<Service> serviceList = new List<Service>();
try
{
// Filling Data
....
}
return serviceList;
}
catch (Exception e) { return null; }
finally { con.Close(); }
}
这是web app中发送对象和接收列表的功能
private List<Service> GetServiceListResponse(HttpWebRequest request
, Service service)
{
try
{
var json = new JavaScriptSerializer().Serialize(service);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = json.Length;
StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(),
System.Text.Encoding.ASCII);
requestWriter.Write(json);
requestWriter.Close();
WebResponse webResponse = request.GetResponse();
Stream webStream = webResponse.GetResponseStream();
StreamReader responseReader = new StreamReader(webStream);
string response = responseReader.ReadToEnd();
JavaScriptSerializer serializer = new JavaScriptSerializer();
// ERROR HERE
dynamic item = serializer.Deserialize<List<Service>>(response);
// ERROR HERE
responseReader.Close();
return item;
}
catch (Exception e) { return null; }
}
当我尝试将 List<.service> 作为 JSON 对象返回并对其进行反序列化时,我得到了那个错误
这是个例外
无法将“System.String”类型的对象转换为“System.Byte[]”类型
【问题讨论】:
-
有什么原因你不能使用自动为你处理所有这些的 .NET HttpClient 库吗?
-
这是我第一次创建 Web 服务,所以我不知道所有的方法。我可能会搜索并尝试一下。感谢你的回复。 @ErikFunkenbusch
标签: c# asp.net json web-services