async Task IEnumerable XElement

时间:2013-01-22 10:22:42

标签: c# model-view-controller asynchronous

我不确定这是否可行,所以任何输入/帮助都会受到赞赏。

我在下面的课程中有以下内容,(此处删除了所有缓存):

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();
}

0 个答案:

没有答案