À l'aide de async/await et le retour Tâche<HttpResponseMessage> à Partir de ASP.NET Web Méthodes de l'API

J'ai une Bibliothèque de classes Portable (PCL) méthode comme ceci:

public async Task<string> GetLineStatuses()
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
    using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
    {
        return response.GetResponseStream().ReadAllText();
    }
}

Mon ASP.NET Web Api méthode ressemble à ceci:

public async Task<HttpResponseMessage> Get()
{
    HttpResponseMessage response = new HttpResponseMessage();
    string statuses = await service.GetStatuses();
    response.Content = new StringContent(statuses);
    return response;
}

Quelles sont les implications de retour d'une mission dans l'API Web. Est-ce possible? La seule raison pour laquelle je veux utiliser attendent est si je peux utiliser une Bibliothèque de classes Portable (PCL). Quelles sont les bonnes pratiques? Dois-je avoir une version synchrone de ma méthode et un système de version? Quelles sont les performances et la lisibilité du code et de la maintenabilité des implications?

Aussi aurais-je le même effet si je retourne Task<string> plutôt que Task<HttpResponseMessage>?

Je belive ASP.NET dans .Net 4.5 soutien async méthodes, de sorte que votre code devrait fonctionner de la nageoire. Pourquoi demandez-vous si cela est autorisé? N'avez-vous pas l'essayer?
Je veux aussi savoir ce que les performances et la lisibilité du code et de la maintenabilité des implications?

OriginalL'auteur Muhammad Rehan Saeed | 2012-12-28