Пользовательская сериализация словаря Json с RestSharp/ASP.NET WebApi

Я хотел бы использовать RestSharp для подключения к моим службам ASP.NET WebApi. WebApi автоматически обрабатывает привязку модели, но очень специфичен в отношении того, как он получает json. Например, рассмотрим следующее:

Public Class DTO
    Property JsonDictionary As Dictionary(Of String, String)
End Class

ASP.NET WebApi соответствующим образом свяжет это с моделью, если я отправлю это на свой POST:

{
    "JsonDictionary[0].Key":"key1",
    "JsonDictionary[0].Value":"value1"
}

Я хотел бы использовать RestSharp или JSON.NET для сериализации словарей в этом формате и отправки Content-Type: application/json. Могу ли я использовать их для достижения своей цели или мне нужно будет написать свой собственный сериализатор? Любая помощь приветствуется.


person John Jelinek    schedule 30.03.2012    source источник


Ответы (2)


Реализовать Json.NET MediaTypeFormatter для ASP.NET WebApi стало трудной задачей, поэтому я разбил WebApi на фрагменты и вместо этого решил использовать ServiceStack. Намного лучше!

person John Jelinek    schedule 03.04.2012

Сериализатор JSON по умолчанию уже является просто JSON.NET, поэтому все, что вы передаете в AddBody(), будет сериализовано с использованием этого, если Request.DataFormat = DataFormat.Json.

person John Sheehan    schedule 31.03.2012
comment
Бета-версия, которая в настоящее время находится в Nuget, не использует JSON.Net. Вы можете либо подождать, пока VS RC не получит это, либо сразу перейти к последнему исходному коду на codeplex. - person Darrel Miller; 31.03.2012
comment
Итак, вы говорите, что если я перейду на WebApi с CodePlex, то смогу моделировать привязку с более гибкими параметрами JSON, а не явно в формате, указанном в исходном сообщении? - person John Jelinek; 31.03.2012