我正在尝试从客户端向Web API方法发布数据,代码如下:
// Create list of messages that will be sent
IEnumerable<IMessageApiEntity> messages = new List<IMessageApiEntity>();
// Add messages to the list here.
// They are all different types that implement the IMessageApiEntity interface.
// Create http client
HttpClient client = new HttpClient {BaseAddress = new Uri(ConfigurationManager.AppSettings["WebApiUrl"])};
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Post to web api
HttpResponseMessage response = client.PostAsJsonAsync("Communications/Messages", messages).Result;
// Read results
IEnumerable<ApiResponse<IMessageApiEntity>> results = response.Content.ReadAsAsync<IEnumerable<ApiResponse<IMessageApiEntity>>>().Result;
我的Web API控制器操作如下:
public HttpResponseMessage Post([FromBody]IEnumerable<IMessageApiEntity> messages)
{
// Do stuff
}
我遇到的问题是,在进入Web API控制器操作时,
messages
总是为空(但不是null)。在发布之前,我已经在调试器中验证了客户端 messages
对象确实有项目。我怀疑这可能与界面类型未在尝试传递对象时转换为具体类型有关,但我不知道如何使其工作。我该如何实现这一点?
SerializerSettings
,而是更新默认设置(就像在您的WebApiConfig.cs
中访问它一样)。这样,您就不会失去其他默认序列化程序设置。 - Jony Adamit