Мы решили эту проблему на нашем рабочем месте. В нашем конкретном случае проблема заключалась в том, чтобы преобразовать текст с помощью XSLT, что было очень сложно, но действительно возможно. В коде это менее сложно, как предлагают другие авторы, просто замените escape-коды на <
и >
и проанализируйте их с помощью обычного парсера.
Однако, похоже, вам нужно одношаговое решение. Я очень сомневаюсь, что стандартный XML Serializer сможет это сделать, поскольку он не знает, какие элементы содержат экранированный XML-контент. Экранированный текст специально предназначен для того, чтобы парсеры xml не могли его обнаружить, поэтому решение, выбранное вручную, вероятно, является единственным вариантом. Ваш класс должен реализовать IXmlSerializable
и выполнить преобразование текста самостоятельно.
Наконец, я настоятельно рекомендую, чтобы, если у вас есть какой-либо контроль над процессом, который создает эти данные, в первую очередь, вы не храните экранированный xml и находите другое решение. Работать с этим неприятно, и я не могу вспомнить ни одной ситуации, в которой это было бы действительно необходимо.