JSON десериализовать до интерфейса - PullRequest
0 голосов
/ 17 января 2019

У меня есть класс, используемый для связи "CommunicationClass1". У него есть свойство ProductName и множество других свойств и классов.

После десериализации мне нужно передать его конструктору правильного класса адаптера "AdaptorClass1" на основе свойства ProductName.

(классы адаптера наследуются от класса AdaptorBase)

Это другое программное обеспечение, которое сохраняет CommunicationClass1 в файл JSON, и мне нужно загрузить его. Второе программное обеспечение может использовать другой класс связи «CommunicationClass2», и мне нужно также загрузить его той же самой программой.

Итак, вопрос, как я могу создать процедуру, которая десериализует любой класс связи и считывает ProductName, чтобы я мог затем загрузить (десериализовать) файл с правильным типом класса связи и передать его в правильный класс адаптера?

По сути, я не знаю, был ли файл сериализован как тип CommunicationClass1 или CommunicationClass2, но я знаю, что он будет иметь свойство ProductName.

Это выполнимо, если да, то как?

1 Ответ

0 голосов
/ 17 января 2019

Ну, вам определенно нужны некоторые критерии дифференциации после десериализации вашей полезной нагрузки. Одна возможность состоит в том, чтобы выбрать один JSON из каждого источника и сравнить их, чтобы вы могли идентифицировать определенное свойство, которое существует только в данном источнике. Если бы вы могли это сделать, вы бы просто приняли решение на основе этих критериев. Надеюсь, это поможет.

...