我不确定这是否可能,所以任何输入/帮助将不胜感激。
我在下面的一个类中有以下内容(这里删除了所有缓存):
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>”不包含“Descendants”的定义,并且找不到接受“System.Threading.Tasks.Task>”类型的第一个参数的扩展方法“Descendants”(您是否缺少使用指令还是程序集引用?)
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);
用户界面
public PartialViewResult pvHomePageWeatherDetails(string id)
{
var currentConditions = _IGWC.CurrentConditions(cleanText).FirstOrDefault();
return PartialView();
}