DataContractSerializer: обработка объектов, тип которых вы не знаете и не имеете доступа к ним
У меня есть класс (назовите его Container), который сериализован и десериализован с использованием DataContractSerializer. Класс содержит коллекцию других классов, каждый из которых наследует один и тот же базовый класс (назовите его ContentsBase), но который имеет различные производные классы. Приложению может быть передан сериализованный объект Container, который содержит производные от ContentsBase объекты , реализация которых мне неизвестна или к которым у меня нет доступа, то есть скомпилированный код недоступен локально. Мне нужно десериализовать этот объект, "игнорируя" типы, о которых я не знаю (мне не нужно обходить их).
Можно ли как-то это сделать, кроме как взять сериализованный XML и написать какой-то специальный код, чтобы просмотреть его и удалить неизвестные элементы перед десериализацией, или это мой единственный вариант?