LINQ и метод расширения количества

Есть 2 возможных BodyStyle для запроса и ответа, завернутый или голый . Когда вы указываете упакованный стиль тела , служба WCF ожидает, что будет передан действительный json, который в вашем случае будет

//note that property name is case sensitive and must match service parameter name
{
    "jsonString": "some value"
}

И когда вы укажете bare отформатировать, что служба ожидает только обычное строковое значение (в случае типа примитива, как ваш) в качестве запроса, подобного этому

"some value"

Когда вы сериализуете свой объект следующим образом

dynamic foo = new ExpandoObject();
foo.position = 1;

string result = JsonConvert.SerializeObject(foo);

the [118 ] содержит следующий json

{
    "position":1
}

, который соответствует формату в оболочке , и служба возвращает 400: Bad Request. Все, что вам нужно сделать, это превратить этот json в действительное значение json string, например,

"{\"position\":1}"

. Это можно сделать повторным вызовом JsonConvert.SerializeObject

dynamic foo = new ExpandoObject();
foo.position = 1;

string wrapped = JsonConvert.SerializeObject(foo);
string bare = JsonConvert.SerializeObject(wrapped);
var content = new StringContent(bare, System.Text.Encoding.UTF8, "application/json");
.
6
задан Stephen Kennedy 9 May 2017 в 17:15
поделиться

2 ответа

Используйте LongCount (), то же самое, но с результатом на 64 бита.

10
ответ дан 10 December 2019 в 00:45
поделиться

Мое решение состояло в том, чтобы использовать .LongCount() дополнительный метод.

0
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: