【发布时间】:2018-04-29 07:47:56
【问题描述】:
protected override IEnumerable<dynamic> GetData()
{
var request = new RestRequest();
var directoryResponse = client.ExecuteTaskAsync(request).Result;
dynamic directory = JsonConvert.DeserializeObject<MyDTO>(directoryResponse.Content);
cachedDirectory = directory;
}
return cachedDirectory;
问题上线
cachedDirectory = directory;
每当它尝试将 dynamic 对象转换为 IEnumerable 类型时。
异常信息:
无法将类型“MyDTO”隐式转换为“System.Collections.Generic.IEnumerable
【问题讨论】:
-
什么是
directoryResponse.Content?你为什么返回IEnumerable<dynamic>而不是模型? -
那么
cachedDirectory的类型是什么?目前尚不清楚您要在这里实现什么,或者MyDTO是什么。 (另外,你的代码有一个额外的大括号,这使得它很难理解。)你能提供一个minimal reproducible example吗? -
@StephenMuecke 我要返回,因为它是我必须重写的接口函数,并且我无法更改函数的返回类型,因为它是项目的一部分。 directoryResponse.Content 是 JsonArray
-
如果您需要更具体的答案,请按照 Daisy Shipton 的建议提供更多详细信息?就像 MyDTO 的样子,directoryResponse.Content 示例等。
-
从根本上说,您正在获取一个 MyDTO,并且您想要返回一个
IEnumerable<dynamic>。该返回值应该包含什么?您如何期望将MyDTO转换为IEnumerable<dynamic>?您实际上只是想创建一个包含单个条目的序列,还是 DTO 包含一系列项目?