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&lt; object&gt;'。存在显式转换(您是否错过了演员?)
答案 0 :(得分:0)
我必须做出一些假设。
以下代码会给您错误。我认为你需要坚持下去。
public class NewTest
{
IEnumerable<dynamic> cachedDirectory;
public IEnumerable<dynamic> GetData()
{
dynamic directory = JsonConvert.DeserializeObject<MyDTO>("{ 'Name' : 'Test' }");
cachedDirectory = directory;
return cachedDirectory;
}
}
public class MyDTO
{
public string Name { get; set; }
}
//这就是你打电话的方式。 (此代码给出错误)
NewTest test = new NewTest();
IEnumerable<dynamic> result = test.GetData();
答案:如果您使用上述方式,则可以执行此类操作。
public class NewTest
{
IEnumerable<dynamic> cachedDirectory;
public IEnumerable<dynamic> GetData()
{
var request = new RestRequest();
var directoryResponse = client.ExecuteTaskAsync(request).Result;
dynamic directory = JsonConvert.DeserializeObject<IEumerable<MyDTO>>(directoryResponse.Content);
return directory;
}
}
public class MyDTO
{
public string Name { get; set; }
}
//现在这样可行。
NewTest test = new NewTest();
IEnumerable<dynamic> result = test.GetData();