【发布时间】:2016-04-27 15:52:30
【问题描述】:
我有一个 web api 2 项目,客户端将请求一些 xml 格式的数据。该 XML 永远不会改变,我想知道如何将它保存在 ram 中,这样它就不会在每次需要来自该文件的数据时反序列化 xml。
在启动时反序列化它然后将其保存在静态变量中是最好的方法,因为它只会用于读取吗?
[HttpPost]
[Route("api/dosomething")]
public string DoSomething() {
var myData = XmlSerializer(MyDataStruct).Deserialize(something);
return myDate;
}
这里的 xml 仅用于将值传达给客户端。我怎样才能做到这一点,以便我可以反序列化一次,然后直接返回。使用静态成员会启用此功能吗?
【问题讨论】:
-
我的想法是使用 ASP.NET 缓存。首次使用时缓存,之后从缓存中提取。
-
是的 - 静态变量是可行的。您还可以使用 http 缓存。这取决于场景 - 如果它被频繁使用/您不关心内存(或 xml 的大小相当小),请使用静态变量;如果不经常使用或担心内存消耗 - 使用 http 缓存。
标签: c# .net asp.net-web-api2 static-members