使用每个会话合同时创建一个单个对象

时间:2013-10-05 20:03:10

标签: c# wcf

我想使用每个会话合同制作一个wcf服务。但我希望每个会话的所有实例都有一个单一对象,所有每个会话实例都有一个acsess。

如果我不清楚,我想为每个客户端创建一个单独的服务实例,但是所有客户端都可以访问一个separete公共内存。

我可以在服务类中使用静态变量来实现这一点,但在wcf中是不是有另一种结构方式?

3 个答案:

答案 0 :(得分:1)

您可以使用System.Runtime.Caching类来实现此目的。默认内存缓存的范围限定为进程级别,因此它应该执行您需要的操作。

http://msdn.microsoft.com/en-us/library/dd997357.aspx

答案 1 :(得分:0)

我认为您可以创建自己的服务主机工厂,以某种方式(例如Jason在Memory Cash中建议)存储您对“单个对象”服务的引用,并将参考您的“单个”创建新的服务主机对象“

答案 2 :(得分:0)

没有WCF在PerSession和Single之间不提供InstanceContextMode中途。

要实现您需要的行为,您可以使用静态类或singleton