1
我正在研究一个项目,我必须将数据存储在WCF服务中,但我不确定如何在数据被操纵时维护更改。WCF服务存储和操作集合?
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, InstanceContextMode =
InstanceContextMode.Single,UseSynchronizationContext = true)]
public class TestService : ITestService {
private List<TestClass> cl;
public TestService()
{
cl = new List<TestClass>();
TestClass tc = new TestClass(5);
cl.add(tc);
}
public void Diminish(int x)
{
cl[0].Value -= x;
}
public TestClass ReturnValue(int p)
{
return cl[p];
}
}
当客户使用这项服务,我怎么可以把收集cl
的更新值那么现在?
我尝试使用私有静态SynchronizedCollection cl;但是当我运行减少后返回值(0)时,我仍然得到5而不是4. –
2012-02-12 22:39:54
@JohnDoe,在两次调用之间重启服务的任何机会?因为你每次重新编译并运行WCF服务时都会将列表存储在内存中,因此它将重新初始化它的值。如果你想以持久的方式保存这个列表,你可能会考虑将它存储在一个文件或数据库中,而不是将它保存在服务器的内存中。 – 2012-02-12 22:44:59
服务正在运行,我运行vs2010的两个实例,其中服务一个与客户端。 – 2012-02-12 22:53:48