我不确定这是否可行,所以任何输入/帮助都会受到赞赏。
我在下面的课程中有以下内容,(此处删除了所有缓存):
public static class MasterXMLWeatherClass
{
public static async Task<IEnumerable<XElement>> WorldWeather(string id)
{
XDocument doc = await Task.Run(() => XDocument.Load(string.Format("http://urladdress?key={0}&feedkey={1}&format=xml&q={2}&tp=6&extra=isDayTime", sPartnerID, sLicenseKey, HttpUtility.UrlEncode(id))));
var getAllWeatherData = from weatherData in doc.Descendants("data")
select weatherData;
return getAllWeatherData.AsEnumerable();
}
}
然后在另一个类我有4个方法从上面获取值,问题是我得到以下错误:
'System.Threading.Tasks.Task&GT;' 不包含'后代'的定义,也没有扩展名 方法'Descendants'接受第一个类型的参数 'System.Threading.Tasks.Task&GT;' 可以找到(你错过了使用指令或程序集 引用?)
var doc = MasterXMLWeatherClass.WorldWeather(id);
var displayCurrentConditions = (from wd in doc.Descendants("current_condition")
- 这是抛出错误的代码行。
但如果我改变:
var doc = MasterXMLWeatherClass.WorldWeather(id);
到
var doc = await Task.Run(()=> MasterXMLWeatherClass.WorldWeather(id));
并在下面更改为
public async Task<IEnumerable<DisplayCurrentConditions>> CurrentConditions(string id)
错误消失了,我在接口中出现错误,然后我必须更改。
最后,我的域图层中没有出现任何错误,但我的UI层中出现了错误
错误正在冒泡。
还有另一种方法吗?
代码添加
接口
Task<IEnumerable<DisplayCurrentConditions>> CurrentConditions(string id);
UI
public PartialViewResult pvHomePageWeatherDetails(string id)
{
var currentConditions = _IGWC.CurrentConditions(cleanText).FirstOrDefault();
return PartialView();
}