【发布时间】:2014-04-22 19:56:02
【问题描述】:
为什么这部分代码会出现这个错误?
这部分
var data = serializer.Deserialize<EmailTemplate>(httpRequest.Form["data"].ToString());
我的程序
public int UpdateEmailTemplate()
{
HttpResponseMessage result = null;
ObjectService uploadFile = new ObjectService();
List<ActiveUp.Net.Mail.Attachment> attachment = new List<ActiveUp.Net.Mail.Attachment>();
var httpRequest = HttpContext.Current.Request;
if (httpRequest.Form["data"] != null)
{
var serializer = new JavaScriptSerializer();
var data = serializer.Deserialize<EmailTemplate>(httpRequest.Form["data"].ToString());
if (httpRequest.Files.Count > 0)
{
var docfiles = new List<string>();
foreach (string file in httpRequest.Files)
{
MemoryStream target = new MemoryStream();
httpRequest.Files[file].InputStream.CopyTo(target);
uploadFile.AddObject(data.Id, "SU_ENTITY_MSG_TEMPLATE","", target.GetBuffer(), httpRequest.Files[file].FileName);
}
}
AdminService List = new AdminService();
return List.UpdateEmailTemplate(data);
}
我的班级
public class EmailTemplate
{
public int Id;
public string TypeObject;
public int? idObject;
public string ObjectName;
public string IdTeam;
public string IdTask;
public string Team;
public string task;
public string Title;
public string Subject;
public string dataHtml;
public List<Objects> fileListRequest;
}
【问题讨论】:
-
请显示异常的详细信息和
EmailTemplate的定义。 -
我确实有这个错误消息 {"Type 'System.String' is not supported for deserialization of an array."} 我尝试使用 {get;set} 但它不起作用
-
您尝试反序列化的字符串很可能与
EmailTemplate的定义不匹配。您是否尝试从 JSON 反序列化?请显示无法反序列化的字符串;请尝试查找导致讨论错误的最小长度的字符串。 -
我确实有这个字符串 "{\"Id\":50021,\"TypeObject\":\"Team\",\"idObject\":null,\"ObjectName\":\ "Dep/arr 任务\",\"IdTeam\":\"4\",\"IdTask\":null,\"Team\":null,\"task\":null,\"Title\": \"SWA\",\"主题\":\"SWA\",\"dataHtml\":\"
x
\\n\",\"fileListRequest\":[] ,\" -
如果您从
EmailTemplate的定义中删除fileListRequest,您会得到同样的错误吗?
标签: c#