Wcf在调用之间共享变量

时间:2014-07-20 15:39:41

标签: c# wcf iis-6

我有一个wcf网络服务,我希望在通话之间共享信息(不同的客户电话)。

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

有没有办法实现这个问题?

已经尝试了一些建议,但似乎没什么可行的。

1 个答案:

答案 0 :(得分:1)

您基本上需要在服务类之外定义singleton - 您需要处理多个调用同时访问/修改信息的可能性,因此需要锁定数据使用ReaderWriteLockReaderWriterLockSlim

假设您使用.net 4.0,更好的方法是使用MemoryCache,其中包含内置的线程安全性。如果您是.net 4.0之前,System.Web命名空间link中有一个缓存对象 - 如果您想在编写Windows应用程序时使用它,则需要添加对system.web的引用有点麻烦所以.net 4.0中的MemoryCache实现是一个受欢迎的补充。