C# Чтение (не запись!) строки из System.Net.Http.StringContent

У меня вроде бы должен быть простой вопрос, но я нигде не могу найти на него ответ. Учитывая следующий код:

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

На что мне нужно заменить ???, чтобы прочитать строковое значение из sc, чтобы myContent = "Hello!"?

.ToString просто возвращает System.String, как и .ReadAsStringAsync. Как прочитать то, что я написал?


person IAmErickson    schedule 28.03.2016    source источник
comment
Я рекомендую использовать MSDN msdn.microsoft.com/en-us/library/   -  person Jace    schedule 29.03.2016
comment
Когда я звоню await sc.ReadAsStringAsync();, я получаю строку Hello!. Если вы получаете System.String, вы делаете что-то не так.   -  person Craig W.    schedule 29.03.2016


Ответы (1)


Вы можете использовать метод ReadAsStringAsync(), а затем получить результат, используя оператор await или свойство Result:

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

string myContent = await sc.ReadAsStringAsync();
//or
string myContent = sc.ReadAsStringAsync().Result;
person Arturo Menchaca    schedule 28.03.2016
comment
Я, должно быть, пробовал полдюжины различных способов, и каждый раз я не мог получить фактическое содержание. Я не уверен, что я делал неправильно - я пытался использовать ReadStringAsSync - но я только что попробовал еще раз, и sc.ReadAsStringAsync().Result действительно работает, так что спасибо! - person IAmErickson; 29.03.2016
comment
Асинхронный как в асинхронном - person Adam White; 12.11.2016