‘System.Net.HttpWebRequest’ no contiene una definición para ‘GetRequestStream’

Soy nuevo tanto en C # como en Windows y estoy intentando crear una aplicación pequeña que realice una solicitud JSON. Estoy siguiendo el ejemplo de esta publicación https://stackoverflow.com/a/4988809/702638

Mi código actual es este:

public string login() { var httpWebRequest = (HttpWebRequest)WebRequest.Create(MY_URL); httpWebRequest.ContentType = "text/plain"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string text = MY_JSON_STRING; streamWriter.Write(text); } } 

pero por alguna razón, Visual Studio está marcando GetRequestStream() con un mensaje de error:

error CS1061: ‘System.Net.HttpWebRequest’ no contiene una definición para ‘GetRequestStream’ y no se pudo encontrar un método de extensión ‘GetRequestStream’ que acepte un primer argumento del tipo ‘System.Net.HttpWebRequest’ (falta una directiva de uso o una referencia de assembly?)

¿Alguna idea sobre por qué esto estaría sucediendo? Ya he importado el paquete System.Net .

HttpWebRequest no tiene un GetRequestStream o GetRequestStreamAsync en WP8. Su mejor apuesta es crear una tarea y esperar en ella, así:

 using (var stream = await Task.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, null)) { // ... } 

Editar: como ha mencionado que es nuevo en C #, debe tener su método de inicio de sesión asíncrono para usar la palabra clave await:

 public async Task LoginAsync() { // ... } 

Las personas que llaman para iniciar sesión deberían usar la palabra clave await al llamar:

 string result = await foo.LoginAsync(); 

Aquí hay una buena introducción al tema: http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx