我想使用每个会话合同制作 wcf 服务。但我希望每个会话的所有实例都有一个对象,所有每个会话实例都有一个对象。
如果我不清楚,我想为每个客户端创建一个单独的服务实例,但它们都可以访问一个单独的公共内存。
我可以在服务类中使用静态变量来实现这一点,但是在 wcf 中没有另一种方式吗?
您可以使用 System.Runtime.Caching 类来实现这一点。默认内存缓存的范围为进程级别,因此它应该满足您的需求。
No WCF does not provide an InstanceContextMode mid-way between PerSession and Single.
To achieve the behavior you require you can use a static class or singleton.
我认为您可以创建自己的服务主机工厂,它会以某种方式(例如 Jason 在 Memory Cash 中建议)存储您对“单一对象”服务的引用,并参考您的“单一对象”创建新的服务主机