Web API 2的静态对象

丹尼斯·麦克拉克莱博士

我有一个Web api 2项目,客户端将请求一些xml格式的数据。该XML永远不会改变,我想知道如何将其保留在ram中,以便它每次需要该文件中的数据时都不会反序列化该xml。

它将在启动时反序列化然后将其保留在静态变量中是最好的方法,因为它将仅用于读取?

 [HttpPost]
 [Route("api/dosomething")]
 public string DoSomething() {

     var myData = XmlSerializer(MyDataStruct).Deserialize(something);
     return myDate;
 }

此处的xml仅用于将值传达给客户端。我怎样才能使它反序列化一次,然后直接返回它。使用静态成员会启用此功能吗?

费德里科·迪皮玛(Federico Dipuma)

一个简单的带有静态字段的备用缓存方法可能是一个不错的选择:

private static MyDataStruct _myData;

[HttpPost]
[Route("api/dosomething")]
public string DoSomething() {
    if(_myData == null)
    {
        _myData = new XmlSerializer(typeof(MyDataStruct)).Deserialize(something);
    }

    return _myData;
}

如果您想要更好的性能,并且完全跳过从XML进行反序列化以及将响应主体序列化为JSON / XML的两种方法,那么我强烈建议您使用一种类似以下库的HTTP输出缓存方法:AspNetWebApi-OutputCache

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Web API 2的静态对象

来自分类Dev

Web API 2 JSON输出与命名对象

来自分类Dev

如何在Web API 2中从静态类使用StructureMap?

来自分类Dev

Web API 2-静态服务-URL编码

来自分类Dev

Web API 2-静态服务-URL编码

来自分类Dev

Web API 2缓存

来自分类Dev

Web API不会返回对象

来自分类Dev

我应该使用Azure Web API还是Azure Worker角色来获得繁忙的静态HTTP Web API 2服务?

来自分类Dev

通过Web API提供静态内容

来自分类Dev

Web API中的静态方法...对还是错?

来自分类Dev

OData,Web Api 2和深度嵌套的对象

来自分类Dev

ASP.NET WEB API 2中的复杂对象

来自分类Dev

Web API 2:如何搜索

来自分类Dev

Web API 2在不同的层

来自分类Dev

Web API 2: how searching

来自分类Dev

Web API以错误的格式发送JSON对象

来自分类Dev

将多个对象发布到Web API

来自分类Dev

Web Api Post ActionResult不返回对象

来自分类Dev

MVC Web Api的角度会话对象

来自分类Dev

将多个对象发布到Web API

来自分类Dev

.NET Web Api InvalidOperationException访问全局对象

来自分类Dev

Web API + MongoDB:任意对象列表?

来自分类Dev

通过REST API反序列化JSON对象接收(C#Web API 2)

来自分类Dev

.NET Web API服务器中的静态变量

来自分类Dev

发布Web服务-IIS上的Web API 2

来自分类Dev

Web API 2中的多个参数

来自分类Dev

Web API 2无法正常工作(404)

来自分类Dev

Web Api 2:带有内容的NotFound()?

来自分类Dev

Autofac:使用Web API 2进行设置