2016-11-23 1 views
0

Ich habe Winform-Anwendung, wo ich einen WCF-Dienst ausgesetzt und es ist auf dem Server auf IIS gehostet, und es gibt etwa 10 Methoden darin.Was ist das erste Ereignis, bei dem Cache-Daten in WCF-Anwendungen abgerufen werden können?

Es gibt einige allgemeine Daten, die ich für die Berechnung aller 10 Methoden benötige. Was ich möchte, ist, diese allgemeinen Daten nur einmal zu erhalten, wenn der Dienst gestartet wird, und sie in den Cache zu stellen, so dass alle Methoden die Daten aus diesem Cache abrufen können, anstatt sie aus der Datenbank zu holen.

Eine Sache, die ich tun kann, ist zu überprüfen, ob Cache verfügbar ist, ist nicht dann holen Sie es sonst verwenden vorhanden. Aber ich muss es in allen offengelegten Methoden machen, weil ich nicht weiß, welche Methoden zuerst aufgerufen werden. Also brauchen Sie einen sauberen und kurzen Weg, dies zu tun.

Gibt es einen Weg, dies zu erreichen?

+0

Was verwenden Sie derzeit zum Caching? Alles überhaupt? –

+0

Wir haben einige statische Klassen, wir schieben Daten auf ihre statischen Variablen, so dass wir sie später lesen können. Das ist unser Caching. – sunil20000

+1

Der einfachste Weg wäre dann, diesen statischen Klassen Initialisierungsmethoden hinzuzufügen und sie beim Start des Dienstes auszuführen. Ich benutze MemoryCache, anstatt statische Klassen (https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx). Es ist gut für leichte Sachen, die sich hier anhören. Es ist in .NET integriert, und es ist einfach, damit zu arbeiten. –

Antwort

0

Ich fand die einfache Lösung meines Problems. In der Cache-Klasse habe ich einen statischen Konstruktor hinzugefügt und dort habe ich den Code zum Abrufen von Cache-Daten geschrieben. Wie wir alle wissen, kann der statische Konstruktor nur einmal aufgerufen werden und kann nicht explizit aufgerufen werden. Sobald wir also versuchen, eine Variable der Cache-Klasse zu lesen (alle sind statische Variablen, um die Cache-Daten zu speichern), wird unser statischer Konstruktor automatisch aufgerufen und füllt die Cache-Daten mit den entsprechenden statischen Variablen.

Verwandte Themen