我可以在云Web角色项目中使用System.Runtime.Caching.MemoryCache吗?

时间:2016-04-19 06:31:51

标签: wcf azure caching memorycache

我想在包含char a[] = u8"My \u263B character"; cout << a; 的网络角色项目中使用System.Runtime.Caching.MemoryCache

有人可以告诉我们,我们是否可以在WCF Service角色项目中使用System.Runtime.Caching.MemoryCache吗?

如果是,请告诉我记忆和其他限制。

1 个答案:

答案 0 :(得分:0)

是的,你可以。

您应该将对System.Runtime.Caching的引用添加到Web角色项目中,然后使用类似下面的代码(它几乎没有做任何事情,并且不是最佳实践)。

使用Azure模拟器在云端Web角色中使用ASP.NET MVC进行了尝试,它可以正常运行。

关于限制 - 您可以使用两个CacheMemoryLimit和PhysicalMemoryLimit属性来检索所需的值。它显示了以字节为单位的限制。我不知道Azure Cloud Services中的内存缓存是否存在超出这些限制的范围。

private static object _lock = new Object();
    private static MemoryCache _cache = new MemoryCache("ThisIsMyCache");

    public static object GetItem(string key)
    {
        lock (_lock)
        {
            var item = _cache.Get(key);
            if (item == null)
            {
                item = InitiaizeItem(key);
                _cache.Set(key, item, new CacheItemPolicy());
            }
            return item;
        }
    }

    private static object InitiaizeItem(string key)
    {            
        return new { Value = key };
    }