Можно ли переопределить поведение WCF DataContractSerializer по умолчанию, когда Serialize/DeSerialize сущности и вместо этого использовать JSON.NET?
У меня есть следующий контракт на обслуживание объекта City. По соображениям дизайна объект City имеет IsReference = true, поэтому по умолчанию DataContractSerializer вызывает ошибки.
Для методов "GET" я могу справиться с ситуацией с JsonConvert.DeserializeObject, но с методами "PUT, POST, DELETE" DataContractSerializer имеет приоритет и терпит неудачу, поскольку объекты IsReference не могут быть сериализованы.
Я нашел эту Post, чтобы реализовать IOperationBehavior и предоставить собственный Serializer, но я не знаю, как интегрировать Json.NET с этим. и я считаю, что для этого должен быть более прямой подход.
Id ценит любую помощь или рекомендации относительно этого сценария или советы другим подходам.
[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)
{
}
}
Большое спасибо
Хоссама