0

これが可能かどうかはわかりませんので、入力/ヘルプをいただければ幸いです。

以下のクラスに次のものがあります(ここではすべてのキャッシュが削除されています):

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

UI

public PartialViewResult pvHomePageWeatherDetails(string id)
{
var currentConditions  =  _IGWC.CurrentConditions(cleanText).FirstOrDefault();
return PartialView();
}
4

0 に答える 0