看起来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可能是一个强大的解决方案吗?
谢谢
Pascal