Я разрабатываю приложение .NET framework, которое позволяет пользователям поддерживать и сохранять «проекты». Проект может состоять из компонентов, типы которых определены в сборках самой структуры и/или в сторонних сборках, которые будут доступны для платформы через еще не построенную подключаемую архитектуру. Когда проект сохраняется, он просто двоично-сериализован для файла.Типы обработки, определенные в плагинах, которые больше не доступны
Проекты переносимы, поэтому несколько пользователей могут загружать один и тот же проект в свои собственные экземпляры фреймворка (так же, как разные пользователи могут открывать один и тот же документ MSWord в своих локальных копиях MSWord). Более того, плагины, доступные в рамках одного пользователя, могут быть недоступны для других.
Мне нужен способ гарантировать, что когда пользователь попытается открыть (то есть deserialise) проект, который включает в себя тип, чья определяющая сборка не может быть найдена (из-за несовместимости версии рамки или отсутствия плагина) , проект по-прежнему открывается, но оскорбительный тип каким-то образом заменен или опущен. Проблема в том, что исследования, которые я сделал до настоящего времени, даже не намекают на подходящий подход. Любые идеи были бы очень благодарны, спасибо.
Да, я подумал об этом, но на самом деле не хотел туда ехать. Тем не менее, мне также необходимо уменьшить сериализованный след проекта - еще одна причина для сериализатора на заказ. Спасибо за ответ. – Chris