【发布时间】:2012-06-27 16:31:04
【问题描述】:
.NET Web 服务中的数据持久性解决方案有哪些?
我有一个网络服务。我给我的网络服务一个 id 并且这个返回正确的对象。
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetMyObject?id={id}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
MyObject GetMyObject(string id);
我不想使用数据库。我想将我的对象集合保存在“内存”中。所以我决定像这样在我的网络服务中创建一个简单的对象
public class Service : IService
{
List<MyObject> list = new List<MyObjec>();
public Service()
{
list.Add(new MyObject() { Id = 1, Data = ...} );
list.Add(new MyObject() { Id = 2, Data = ...} );
list.Add(new MyObject() { Id = 3, Data = ...} );
list.Add(new MyObject() { Id = 4, Data = ...} )
...
}
public MyObject GetMyObject(string id)
{
// code to get my object from the list
return myObject;
}
}
它可以工作,但是每次我调用我的 web 服务时都会调用构造函数,我想初始化这个列表一次并稍后对其进行修改。我应该如何初始化我的列表并将其持久化?
【问题讨论】:
-
目前我不介意并发性,但是在最终解决方案中,我将不得不使用列表以外的其他东西。
-
我不确定 Web 服务中数据持久性的定义。如果您必须重新启动服务和服务器,清除所有内存,您是否需要持久化数据?
标签: c# .net web-services