Невозможно добавить тело в RestSharp RestRequest, используя перечисления - PullRequest
2 голосов
/ 05 октября 2010

Я использую RestSharp в проекте ASP .NET MVC 2.Попытка создать RestRequest (используя метод POST) и добавить два значения перечисления (мой тип перечисления - OrderStatusFlags) к телу запроса - используя встроенный RestSharp XmlSerializer:

var request = new RestRequest("orders/{vendorID}/{number}", Method.POST);
request.AddBody(previousOrderStatus);
request.AddBody(newOrderStatus);

Но после вызова метода AddBody в запросепараметры могут видеть только пустые, но не значения.И при вызове метода действия MVC возникает ошибка:

Словарь параметров содержит пустую запись для параметра 'previousStatus' ненулевого типа 'OrderStatusFlags' для метода 'RestResponse PostOrderStatus (Int32, System.String, OrderStatusFlags, OrderStatusFlags) 'в' OrdersResourceEndpoint '.Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры

Перечисление выглядит следующим образом:

public enum OrderStatusFlags : long
{
    Pending,
    Confirmed,
    ...
}

Есть ли у кого-нибудь похожая ситуация?

1 Ответ

4 голосов
/ 05 октября 2010

Пара вопросов здесь.Во-первых, вы можете позвонить AddBody() только один раз, или последний вызов будет иметь приоритет.AddBody() также только для отправки XML в качестве тела запроса.Какая XML-схема необходима для отправки на этот URL-адрес?Можете ли вы опубликовать какой-нибудь пример XML, который вы пытаетесь сгенерировать?

Я думаю, что более вероятно, что вы на самом деле захотите использовать AddParameter() для добавления некоторых параметров POST, так как это гораздо чаще, чем тела запросов XML.

...