【发布时间】:2020-07-08 18:04:54
【问题描述】:
我无法反序列化 HttpResponseMessage 并将值存储为字符串 []。
string content = message.Content.ReadAsStringAsync().Result;
string[] result = new JavaScriptSerializer().Deserialize<string[]>(content);
我不得不从已弃用的 Type t 更改为 string[],因为 API 方法签名已更改,所以现在我收到一个错误:No parameterless constructor defined for type of 'System.String[]'。
我在网上和 stackoverflow 上都没有找到我的问题的解决方案,但我尝试使用此方法 FormatterServices.GetUninitializedObject(Type) 但是当我将结果的右手值放在括号内时,我得到一个错误: 无法从 'string[]' 转换为 'System.Type' 这是有道理的,因为我相信该方法会创建一个实例而不是“协助”反序列化。
如何正确地从反序列化的 HttpResponseMessage 中获取值作为字符串 []?
参考资料:
No parameterless constructor defined for type of 'System.String' during JSON deserialization
【问题讨论】:
-
如果你真的需要一个数组,你可以使用
List<string>,然后调用ToArray()。 -
这是否适用于数组,可能是因为 List
实际上是一种类型? -
这是因为有一个默认的、无参数的构造函数。
-
如果您希望获得正确评论的声誉,请回答问题,否则我将回答我自己的问题 :)
标签: c# serialization