无法使用枚举向RestSharp RestRequest添加正文

时间:2010-10-05 15:29:17

标签: restsharp

我在ASP .NET MVC 2项目中使用RestSharp。尝试创建RestRequest(使用POST方法)并添加两个枚举值(我的枚举类型 - OrderStatusFlags)来请求正文 - 使用内置的RestSharp XmlSerializer:

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

但是在请求参数中调用AddBody方法后,只能看到空但没有值。在调用MVC操作方法时,会发生错误:

参数字典包含'OrdersResourceEndpoint'中方法'RestResponse PostOrderStatus(Int32,System.String,OrderStatusFlags,OrderStatusFlags)'的非可空类型'OrderStatusFlags'的参数'previousStatus'的空条目。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数

Enum看起来像这样:

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

是否有人出现类似情况?

1 个答案:

答案 0 :(得分:4)

这里有几个问题。首先,您只能拨打AddBody()一次或最后一次通话优先。 AddBody()也仅用于发送XML作为请求正文。您需要向该URL发送所需的XML架构是什么?你能发布一些你想要生成的样本XML吗?

我认为您更有可能希望使用AddParameter()添加一些POST参数,因为这比XML请求体更常见。