Можно ли переопределить стандартное поведение WCF DataContractSerializer, когда объекты Serialize / DeSerialize, и вместо этого использовать JSON.NET?
У меня есть следующий контракт на обслуживание для обработки объекта City.Из соображений дизайна у объекта City есть IsReference = true, и поэтому DataContractSerializer по умолчанию выдает ошибки.
Для методов «GET» я могу обработать ситуацию с JsonConvert.DeserializeObject, но с «PUT, POST, DELETE»методы DataContractSerializer имеют приоритет и не могут жаловаться на сущности IsReference, которые нельзя сериализовать.
Я нашел эту публикацию , чтобы реализовать IOperationBehavior и предоставить свой собственный Serializer, но я не знаю, как интегрировать Json.NET с этим.и я считаю, что для этого должен быть более прямой подход.
Буду признателен за любую помощь или руководство в отношении этого сценария или советы по другим подходам.
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class CityService
{
[Description("Get all Cities")]
[WebGet(UriTemplate = "")]
public Message Cities()
{
}
[Description("Allows the details of a single City to be updated.")]
[WebInvoke(UriTemplate = "{code}", Method = "PUT")]
public Message UpdateCity(string code, City city)
{
}
}
Большое спасибо
Хоссам