我正在开发一个允许用户维护和保存“项目”的 .NET 框架应用程序。一个项目可以由其类型在框架本身的程序集中和/或第三方程序集中定义的组件组成,这些组件将通过尚未构建的插件架构提供给框架。保存项目时,只需将其二进制序列化为文件。
项目是可移植的,因此多个用户可以将同一个项目加载到他们自己的框架实例中(就像不同的用户可以在他们自己的本地 MSWord 副本中打开同一个 MSWord 文档一样)。更重要的是,一个用户的框架可用的插件可能对另一个用户的框架不可用。
我需要某种方法来确保当用户尝试打开(即反序列化)包含无法找到定义程序集的类型的项目时(由于框架版本不兼容或缺少插件),该项目仍然打开,但有问题的类型以某种方式被替换或省略。麻烦的是,我迄今为止所做的研究甚至没有暗示合适的方法。任何想法将不胜感激,谢谢。