Я пытаюсь прочитать URL-адрес формы xml.
это мой код:C# windowphone 8.1 код с задачей async
static XDocument GetXml(string url)
{
using (HttpClient client = new HttpClient())
{
var response = client.GetStreamAsync(url);
return XDocument.Load(response.Result);
}
}
и я читал XML, как это:
public object DeteailsEmp(string emp_xml, string emp_error)
{
XDocument xml;
try
{
xml = XDocument.Parse(GetXml(emp_xml).ToString());
}
catch
{
xml = XDocument.Load(emp_error);
}
var detail = from query in xml.Descendants("emp")
select new Data.Emp
{
Name = (string)query.Element("name").Value,
Age = (string)query.Element("age").Value,
return detail ;
}
с этим кодом, все в порядке.
, но, когда я изменить код для асинхронной задачи, как это:
async static Task<XDocument> GetXml(string url)
{
using (HttpClient client = new HttpClient())
{
var response = await client.GetStreamAsync(url);
return XDocument.Load(response);
}
}
я не могу читать XML с этим кодом.
как исправить?
Что вы имеете в виду не умеет читать xml? Вы встречаете исключение? Если да, отправьте его. Как выглядит ваш DetailsEmp, когда вы конвертируете его в асинхронный метод? –
Во втором случае, когда вы терпите неудачу, вы используете ответ, в то время как первый случай вы используете response.Result(). – jdweng
@jdweng: потому что если я использую response.Result(), он не может найти Result() – 1234abcd