2010-10-05 9 views
2

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

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 '. Необязательный параметр должен быть ссылочным типом, нулевым типом или объявлен как необязательный параметр. Имя параметров: параметры

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

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

ли кто-нибудь происходит в ситуации похож?

ответ

4

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

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

+0

Большое спасибо за расширение ответа! Вы совершенно правы - лучше использовать параметры для этой задачи! – Polina