2016-11-23 50 views
0

我winform应用程序,我公开了一个WCF服务,它托管在服务器上的IIS上,并且里面有大约10种方法。我们可以在WCF应用程序中获取缓存数据的第一个事件是什么?

在计算所有10种方法时,我需要一些常用数据。我想要的只是在服务启动时将这些公共数据取出并放入缓存中,以便所有方法都可以从此缓存中获取数据,而不是从数据库中获取数据。

我可以做的一件事是检查是否有缓存可用,是不是然后获取它,否则使用现有的。但是我必须在所有暴露的方法中这样做,因为我不知道哪些方法会先被调用。所以需要一个干净而简短的方法来做到这一点。

有没有办法实现它?

+0

你目前用于缓存的是什么?什么都可以? –

+0

我们有一些静态类,我们将数据推送到它们的静态变量,以便我们稍后可以读取它们。这就是我们的缓存。 – sunil20000

+1

那么最简单的方法就是将初始化方法添加到这些静态类并在服务启动时运行它们。我使用MemoryCache,而不是静态类(https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx)。对于重量轻的东西来说,这听起来像你可能在这里。它内置于.Net,并且很容易处理。 –

回答

0

我找到了我这个问题的简单解决方案。在Cache类中,我添加了一个静态构造函数,并在那里编写了获取缓存数据的代码。众所周知,静态构造函数只能调用一次,不能被明确调用。因此,只要我们尝试读取Cache类的任何变量(所有变量都是静态变量来保存缓存数据),我们的静态构造函数就会自动调用,并将缓存数据填充到相应的静态变量中。

相关问题