Как я десериализовываю XML, не зная тип заранее?

Я предполагаю, что вам нужно установить архиватор npm и упаковать зависимости node_modules вместе с вашим index.js (файл обработчика для вашей точки входа лямбда). Вы можете заархивировать и развернуть / загрузить его на свою лямбду.

Также взгляните на https://github.com/serverless/serverless инфраструктуру, которая облегчит подобные вещи.

13
задан Ray 22 April 2009 в 04:44
поделиться

3 ответа

Используйте атрибут [XmlInclude] в базовом классе, чтобы сообщить сериализатору XML о производных классах, чтобы он мог выяснить, что создавать. Ваш последний фрагмент кода должен работать правильно.

8
ответ дан 1 December 2019 в 23:48
поделиться

Вы можете прочитать корневой узел файла XML и вместо использования оператора switch вы можете написать свой код следующим образом -

Type yourType = Type.GetType("Your Type");
XmlSerializer xs = new XmlSerializer(yourType);

Я не думаю, что есть какой-либо другой способ, кроме чтения XML потому что, если вы не знаете тип, вы ничего не можете сделать.

9
ответ дан 1 December 2019 в 23:48
поделиться

Насколько я знаю, более простого способа сделать это не существует.

Лично я предпочитаю более универсальное решение (поскольку мне приходится сериализовать множество различных классов в моем коде) : сохранить имя типа сериализованным вместе со значением.

Вы можете взглянуть на этот вопрос для некоторых деталей: Сериализация в XML и включение типа сериализованного объекта

0
ответ дан 1 December 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: