在应用程序之间共享数据和通知的最佳实践

neu*_*ron 8 c# notifications share

在同一台计算机上的不同应用程序之间共享数据并在数据发生更改时通知它们的最佳做法是什么?

我有4个应用程序使用相同的设置项目来更改其设置.当我更改项目中的设置时,其他应用程序必须对此更改执行操作,并且必须知道设置已更改.

我想过IPC进行设置更改,然后将更改信息广播给所有用户,但如果这样的库已经存在,那将会很棒.

编辑:

我找到了一个适合我的解决方案.我们决定不在此功能上花费大量时间,因为更新其他应用程序并非极端.

我们像以前一样将设置保存在XML文件中,并在该文件上注册了FileSystemWatcher以获取所有更改.因此,如果我更改设置,则所有4个应用程序都会读取设置文件,并确定是否必须执行操作.

小智 1

根据不同的参数选择解决方案:

  1. 你可以在实施上投入多少精力。
  2. 应用程序的快速更新是多么重要。
  3. 您/您的客户可以使用哪种环境。
  4. ...

例如:

  • 将更改保存到数据库/配置文件,并让应用程序运行一个单独的线程,该线程专门每 n 秒检查一次设置更改。这种解决方案既便宜又容易实现,但并不“好”,许多开发人员会拒绝这种解决方案。
  • 创建一个 WCF 服务,该服务“发布”对应用程序的更改。在这种情况下,使用双重绑定,应用程序将立即更新。当然,这种解决方案的成本更高......

这些只是许多可用解决方案(共享内存、共享应用程序域等)中的两个示例。