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

Can i use System.Runtime.Caching.MemoryCache in cloud web role project?

我想在包含 WCF Service.

的 Web 角色项目中使用 System.Runtime.Caching.MemoryCache

谁能告诉我我们是否可以在 Cloud web 角色项目中使用 System.Runtime.Caching.MemoryCache

如果是,请告诉我内存和其他限制。

是的,你可以。

您应该将对 System.Runtime.Caching 的引用添加到 Web 角色项目,然后使用类似下面的代码(它几乎什么都不做,当然不是最佳实践)。

刚刚在带有 Azure 模拟器的云 Web 角色中使用 ASP.NET MVC 进行了尝试,它成功了。

关于限制 - 您可以使用两个 CacheMemoryLimit 和 PhysicalMemoryLimit 属性来检索所需的值。它以字节为单位显示限制。我不知道在 Azure 云服务中的内存缓存方面是否有任何限制。

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 };
    }