1
3
我有点用你的2号。 但是我只在.NET 2中使用我的应用程序,但它仍然适用。 我有一个设置类,在我的两个程序中使用。在这个设置类中,我设置了一个 FileSystemWatcher 查看设置文件的对象。 如果另一个应用程序更新了设置文件,则我的当前应用程序将获得一个事件触发器,指示需要重新加载设置。 您也可以在设置屏幕中应用相同的原则,这样,如果(服务)其他应用程序在设置编辑期间更新了任何内容,这些内容就会反映在您的屏幕中。 我使用appdata(我的公司/应用程序名目录)存储文件。 要记住的另一件事是,在写入文件时可能会锁定该文件,因此您可以使用临时名称save、删除old、重命名temp方法,或者在filewatcher事件触发更改后读取时对该文件进行一些保护性锁定。 我在我的 文件系统监视程序 在继续之前
代码是这样的。(现在读到这篇文章后,可能会有更好的方法,我在这里使用一些睡眠来减少CPU振荡)
|
2
3
假设所有的东西都在同一台机器上运行,那么这样做如何:
|
3
2
通常,执行“轮询操作”(即同步文件)的服务在其轮询间隔中有足够的延迟时间,您可以轻松地重新读取每个循环的所有设置,甚至在需要时也可以。 如果您的服务更多地遵循SOA后端,那么这些更改可能会影响通常在服务生命周期中只使用一次的设置。如果这是您的应用程序类型,那么您上面描述的选项2是最可靠的。我不能说我很关心Paul的实现,因为这样的文件轮询会产生不可靠的结果。我建议使用一个全局命名的等待句柄来向进程发出更改信号。我相信你能在这上面找到一个例子。如果不想这样做,那么可以轮询配置文件的上次修改时间更改。 总的来说,我倾向于使用注册表进行存储的第一种方法。在注册表配置单元中以离散值写入所有设置,并在服务中按需读取这些设置。它比您想象的要快,并且很容易在前端和后端实现。 |
4
0
我必须同意你最初倾向于2和3。我特别喜欢3,因为我不喜欢投票,但最终我认为2或3之间的决定将由您的服务要求驱动。 至于用户设置的存储,我建议您探索独立存储( http://msdn.microsoft.com/en-us/library/3ak841sy.aspx )它为安全、一致和可靠地访问用户文件提供了一种极好的机制。除非管理员完全关闭了独立存储,否则您不必担心用户是否具有权限。另外,如果你启用漫游,如果用户在同一个域上使用不同的系统,他们甚至可以使用自己的设置,相当灵活,是吗? |