У меня есть ситуация, когда я получаю ответ от двух разных веб-сервисов. Два ответа идентичны по структуре, но имеют разные родительские пространства имен. Я пытаюсь преобразовать эти ответы в стандартный класс, который затем можно передать родительскому объекту. Я подумал, что самым простым способом было сериализовать входящий объект до Json, а затем десериализовать объект в мой стандартный объект. Это делает мой код обработки довольно простым
var jsonString = JsonConvert.SerializeObject(serviceResponse.Results);
var commonObject = JsonConvert.DeserializeObject<StandardResult>(jsonString);
И по большей части это работает. Однако я расширяю объект StandardResult, в котором обнаружена небольшая проблема.
Одним из свойств объекта является класс со следующими свойствами:
public class EntryDetailType
{
public string EntryNumber {get; set;}
public string EntryText {get; set;
public int Item {get; set;}
}
Проблема является то, что Item
на самом деле может быть одним из двух различных перечислений во входящих данных. Поэтому, хотя преобразование правильно помещает значение перечисления в Item
, я понятия не имею, к какому перечислению относится это значение. Я не на этом этапе использую класс JsonConverter, поскольку объект очень большой, и я хотел бы избежать этого, если это возможно.
Есть ли способ получить описание enum вместо значения как части этого процесса, или я буду вынужден написать свои собственные json преобразователи? Помните, что класс EntryDetailType
не входит в мой проект. Это тип возврата из веб-службы, который был добавлен через документ wsdl.