Ne peut pas attendre asynchrone de la méthode d'extension

Situation est assez simple: j'ai écrit une méthode d'extension et de fait il asynchrone avec le type de retour Task<T>. Mais quand j'essaie d'appeler à l'aide de l'attendent, le compilateur génère une erreur qui suggère que la méthode d'extension n'a pas été reconnu asynchrone à tous.
Voici mon code:

public static async Task<NodeReference<T>> CreateWithLabel<T>(this GraphClient client, T source, String label) where T: class
    {
        var node = client.Create(source);
        var url = string.Format(ConfigurationManager.AppSettings[configKey] + "/node/{0}/labels", node.Id);
        var serializedLabel = string.Empty;
        using (var tempStream = new MemoryStream())
        {
            new DataContractJsonSerializer(label.GetType()).WriteObject(tempStream, label);
            serializedLabel = Encoding.Default.GetString(tempStream.ToArray());
        }
        var bytes = Encoding.Default.GetBytes(serializedLabel);

        using (var webClient = new WebClient())
        {
            webClient.Headers.Add("Content-Type", "application/json");
            webClient.Headers.Add("Accept", "application/json; charset=UTF-8");
            await webClient.UploadDataTaskAsync(url, "POST", bytes);
        }

        return node;
    }


var newNode = await client.CreateWithLabel(new Task(), "Task");

Message d'erreur Exact est: est-ce

'Attendre' opérateur ne peut être utilisé dans une méthode asynchrone. Envisager de marquer cette méthode avec la "asynchrone" modificateur et de changer de type de retour à la "Tâche"

Je fais quelque chose de mal ou est-il une langue ou une limitation de compilateur?

Merci de poster le code.
Astuce: si vous suivez les APPUYEZ sur les conventions, d'autres développeurs pourront plus facilement être en mesure d'utiliser votre async méthodes.

OriginalL'auteur chester89 | 2013-11-01