2016-03-28 12 views
7

Mam coś, co wydaje się być prostym pytaniem, ale nigdzie nie mogę znaleźć odpowiedzi. Biorąc pod uwagę następujący kod:C# Czytaj (nie pisz!) Ciąg od System.Net.Http.StringContent

using System.Net.Http; 
    ... 
    StringContent sc = New StringContent("Hello!"); 
    string myContent = ???; 

Co muszę wymienić ??? z aby odczytać wartość ciągu od sc, tak że myContent = "Hello!"?

.ToString po prostu zwraca System.String, podobnie jak .ReadAsStringAsync. Jak mogę odczytać, co napisałem?

+2

polecam wykorzystując MSDN https://msdn.microsoft.com/en-us/library/system .net.http.stringcontent% 28v = vs.118% 29.aspx – Jace

+0

Kiedy nazywam 'await sc.ReadAsStringAsync();' otrzymuję ciąg "Hello!". Jeśli dostajesz 'System.String', robisz coś złego. –

Odpowiedz

10

Można użyć ReadAsStringAsync() metodę, a następnie uzyskać wynik używając await oświadczenie lub Result właściwość:

StringContent sc = new StringContent("Hello!"); 

string myContent = await sc.ReadAsStringAsync(); 
//or 
string myContent = sc.ReadAsStringAsync().Result; 
+0

Musiałem wypróbować to na pół tuzina różnych sposobów i za każdym razem nie mogłem uzyskać właściwej treści. Nie jestem pewien, co robiłem źle - Próbowałem użyć ReadStringAsSync - ale po prostu spróbowałem ponownie i sc.ReadAsStringAsync(). Wynik rzeczywiście działa, więc dzięki! – IAmErickson

+0

Asynchroniczne jak w asynchronicznym –