【发布时间】:2010-10-07 19:51:41
【问题描述】:
似乎 System.Web.Script.Serialization.JavascriptSerializer 类试图获取当前请求的 HttpResponse,大概是为了应用适当的字符编码。
然而,这意味着当您使用没有 HttpContext 范围内的类时,它会因以下异常 + 堆栈跟踪而崩溃:
[HttpException (0x80004005): Response is not available in this context.]
System.Web.HttpContext.get_Response() +8753496
System.Web.Util.HttpEncoder.get_Current() +39
System.Web.HttpUtility.JavaScriptStringEncode(String value, Boolean addDoubleQuotes) +13
System.Web.Script.Serialization.JavaScriptSerializer.SerializeString(String input, StringBuilder sb) +31
System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +240
System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +1355
System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +194
System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat) +26
System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat) +74
System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj) +6
我无法以保证存在有效 HttpContext 的方式重新编写代码。关于如何避免这种情况的任何想法? String 类型的自定义 JavascriptConverter 可能是一个健壮的解决方案吗?
谢谢
帕斯卡
【问题讨论】:
标签: c# asp.net json httpresponse