我正在编写一个简单的测试用例来测试我的Controller在调用我的服务之前调用缓存。我正在使用xUnit和Moq来完成这项任务。我遇到了一个问题,因为GetOrCreateAsync是一种扩展方法,框架不能模拟这些方法。我依靠内部细节来弄清楚我可以模拟TryGetValue相反,逃避我的测试(参见https://github.com/aspnet/Caching/blob/c432e5827e4505c05ac7ad8ef1e3bc6bf784520b/src/Microsoft.Extensions.Caching.Abstractions/MemoryCacheExtension
我正在使用aspnetcore1.0和xunit。我正在尝试为一些使用IMemoryCache的代码编写单元测试。但是,每当我尝试在IMemoryCache中设置一个值时,我都会收到Null引用错误。我的单元测试代码是这样的:IMemoryCache被注入(inject)到我要测试的类中。但是,当我尝试在测试中的缓存中设置一个值时,我得到了一个空引用。publicTestGetSystemUnderTest(){varmockCache=newMock();returnnewTest(mockCache.Object);}[Fact]publicvoidTestCache(){vars
我正在尝试模拟IMemoryCache最小起订量。我收到此错误:Anexceptionoftype'System.NotSupportedException'occurredinMoq.dllbutwasnothandledinusercodeAdditionalinformation:Expressionreferencesamethodthatdoesnotbelongtothemockedobject:x=>x.Get(It.IsAny())我的模拟代码:namespaceIag.Services.SupplierApiTests.Mocks{publicstaticclassM
Remove方法可以通过键从IMemoryCache中删除对象。有没有办法重置整个缓存并删除所有对象?使用HowtoclearMemoryCache?所述的Dispose方法不起作用:ObjectDisposedException:Cannotaccessadisposedobject.Objectname:'Microsoft.Extensions.Caching.Memory.MemoryCache'. 最佳答案 参见Cachein-memoryinASP.NETCore,特别是关于Cachedependencies.Using
Remove方法可以通过键从IMemoryCache中删除对象。有没有办法重置整个缓存并删除所有对象?使用HowtoclearMemoryCache?所述的Dispose方法不起作用:ObjectDisposedException:Cannotaccessadisposedobject.Objectname:'Microsoft.Extensions.Caching.Memory.MemoryCache'. 最佳答案 参见Cachein-memoryinASP.NETCore,特别是关于Cachedependencies.Using
希望我能得到一些关于哪种缓存机制最适合Azure的说明。目前我的应用程序使用内存中(IMemoryCache)来保存经常访问的数据。此功能是否与在单个Web服务器上一样?即存储在内存中一次并由每个请求访问?还是AzureWeb服务器场使这变得复杂?根据上述问题的答案,我是否更好地使用Redis和IDistributedCache模型? 最佳答案 下面是Memory缓存和DistributedCache缓存的区别。您可以根据自己的需要进行选择。ThebenefitofusingMemorycacheisitissimpleandfas