Wcf在调用之间共享变量

本文关键字:共享变量 之间 调用 Wcf | 更新日期: 2023-09-27 18:13:38

我有一个wcf web服务,我想在调用(不同的客户端调用)之间共享信息。

例如在客户端调用之间共享字典。字典可以通过调用更改(添加/删除项目等),但我不能努力删除它或为每次调用更新(它应该像一个静态数据库)。

有办法实现这个问题吗?

我已经尝试了一些建议,但似乎都不奏效。

Wcf在调用之间共享变量

你基本上需要在你的服务类之外定义一个单例——你需要处理多个调用同时访问/修改信息的可能性,所以可能需要用ReaderWriteLock或ReaderWriterLockSlim来锁定数据。

如果你使用的是。net 4.0,一个更好的方法是使用MemoryCache,它包含了内置的线程安全。如果你是在。net 4.0之前,系统中有一个缓存对象。Web命名空间链接——必须添加对系统的引用有点麻烦。如果你想在编写windows应用程序时使用它,那么。net 4.0中的MemoryCache实现是一个受欢迎的添加。