0

我正在开发一个允许用户维护和保存“项目”的 .NET 框架应用程序。一个项目可以由其类型在框架本身的程序集中和/或第三方程序集中定义的组件组成,这些组件将通过尚未构建的插件架构提供给框架。保存项目时,只需将其二进制序列化为文件。

项目是可移植的,因此多个用户可以将同一个项目加载到他们自己的框架实例中(就像不同的用户可以在他们自己的本地 MSWord 副本中打开同一个 MSWord 文档一样)。更重要的是,一个用户的框架可用的插件可能对另一个用户的框架不可用。

我需要某种方法来确保当用户尝试打开(即反序列化)包含无法找到定义程序集的类型的项目时(由于框架版本不兼容或缺少插件),该项目仍然打开,但有问题的类型以某种方式被替换或省略。麻烦的是,我迄今为止所做的研究甚至没有暗示合适的方法。任何想法将不胜感激,谢谢。

4

2 回答 2

0

您将需要使用反射制作自己的序列化程序。

于 2010-04-01T14:57:44.820 回答
0

这个问题很大程度上取决于您的架构。接口和依赖注入用于实现您描述的“可插拔”架构,但只有您可以确定如何从不可用的类型定义中“恢复”。您的设计需要考虑到项目的任何组件都可能无法加载的事实。

于 2010-04-01T15:00:14.813 回答