我花了一天时间阅读有关如何在进程之间最好地共享数据的文章/博客。我以前没有机会深入探讨这个话题,但我想知道您认为处理以下问题的最佳解决方案是什么。
我正在开发一个使用 MEF 绑定插件的应用程序。插件(主要是显示为 MDI 表单的表单)可以根据它们需要/提供的内容具有多个接口实现,大型机检查它们是否已实现,然后满足它们的需求。到目前为止,一切都很好,正在运行。
现在,如果您启动应用程序,它会要求有效登录(MainFrame),如果登录成功,则用户将存储在 MainFrame 中。现在知道所有可用插件的 PluginManager 在激活时将用户传递到插件中。
这行得通,但这是一个好方法吗?
我还考虑过有一个 AppEnvironment 类,它使用静态变量共享多个信息,如 User、DataConn-Strings 等。该应用程序经常使用任务,因此我使用静态锁定对象保护了可能在运行时更改的静态变量。
我已经在这里读到静态变量不好......真的是这样吗?
我发现的另一件事是,我可以使用管道在 MainFrame 及其子窗体之间共享信息……这不是有点过分了吗?你喜欢/使用管道来满足这些要求吗?
请不要误会我的意思,我不是在寻找一种简单的方法来归档我想要的东西,但我真的很喜欢用一种精致、优雅的方式在 MainFrame 及其 ChildForms 中共享信息。如果我能学到新东西,那就更好了;)
感谢您的关注,任何帮助都将不胜感激:)
干杯凯尔