Ich möchte also einen Dienst erstellen, der auf externe API zugreift, und ich möchte häufige Anfragen von der API in diesem Dienst zwischenspeichern, es hängt von 3 anderen Diensten ab, aber ich möchte ihm eine eigene Instanz geben Cache, MemoryDistributedCache könnte später für etwas anderes aus meinem ControllerIst es richtig aspnetcore Weg? Service & Dependency Injection
services.AddSingleton<ISomeApi, SomeApi>(provider => new SomeApi(
Configuration.Get<Options>(),
new MemoryDistributedCache(new MemoryCache(new MemoryCacheOptions())),
provider.GetService<ILogger<SomeApi>>()
));
nun geändert werden ich die api über DI zugreifen können, es funktioniert gut, aber ich bin nicht sicher, ob seine irgendeine Art eines anti-Muster oder ob es besser Möglichkeiten, es zu tun
Ich meine, das eigentliche Problem ist die Trennung des internen Cache, Anfrage IDistributedMemory von einem Dienst w ould geben mir das gleiche Objekt, als ob ich es von einem anderen Dienst anfordern, sie müssen getrennt werden
Warum muss es ein separater Cache sein? Auch nur ein Hinweis: 'GetService()' gibt null zurück, wenn der Dienst nicht gefunden wird. Wenn Ihr Dienst den Logger wirklich benötigt, verwenden Sie 'GetRequiredService ()'. –
juunas
lässt sich sagen, dass ein Cache von einem Datenbanksystem unterstützt wird, der zweite Cache von einem anderen – gdpm