Microsoft.Extensions.Caching.Memory Beispiel (Mit PDF) in C#
Um Anwendungen reaktionsschnell und effektiv zu konstruieren, sind für .NET-Anwendungen häufig Optimierungsmethoden erforderlich. Caching ist ein leistungsstarker Ansatz, bei dem häufig angeforderte Inhalte vorübergehend in einem verteilten Cache gespeichert werden, um eine schnellere Abrufung zu erleichtern. Die Reduzierung der Verarbeitungszeit und Serverlast mit dieser Strategie kann zu einer erheblichen Steigerung der Anwendungsleistung führen. Zusätzlich können Leistungsindikatoren implementiert werden, um das Caching-System zu überwachen und zu verbessern.
Caching ist eine leistungsstarke Optimierungsstrategie in diesem Kontext. Microsoft.Extensions.Caching.Memory bietet eine effiziente In-Memory-Objekt-Caching-Lösung für .NET-Anwendungen. Ihre PDF-zentrierten Anwendungen werden wesentlich schneller funktionieren und reagieren, wenn Sie den MemoryCache Cache strategisch zusammen mit IronPDF verwenden.
Wir untersuchen, wie man Microsoft.Extensions.Caching.Memory C#-Beispiele effizient in IronPDF integrieren kann. In diesem Artikel werden wir die Vorteile von Caching im Hinblick auf den IronPDF HTML zu PDF Konvertierungsprozess besprechen, einige nützliche Implementierungstipps durchgehen und eine detaillierte Anleitung zur Konfiguration des Cachings in Ihrem IronPDF-Programm anbieten. Abschließend werden Sie die Fähigkeiten und Ressourcen haben, um effektive und intuitive PDF-Anwendungen zu entwickeln.
Microsoft.Extensions.Caching.Memory: Die Grundlagen des Caching in .NET
Caching ist eine Methode, die in vielen leistungsstarken .NET-Anwendungen verwendet wird, um häufig aufgerufene Daten im Speicher zu speichern und schnell abrufen zu können. Microsoft.Extensions ist eine von vielen verfügbaren Caching-Optionen. Caching.Memory ist eine besonders starke und anpassungsfähige Option. Diese Bibliothek ist eine Komponente des größeren Namespace Microsoft.Extensions.Caching und bietet einen unkomplizierten, aber dennoch effektiven In-Memory-Caching-Ansatz.
Schlüsseltypen innerhalb von "Microsoft.Extensions.Caching.Memory"
IMemoryCache
- Diese Schnittstelle stellt die grundlegende Fähigkeit zur Nutzung des In-Memory-Caches dar. Sie bietet Möglichkeiten zum Verwalten von Cache-Einträgen sowie zum Hinzufügen, Abrufen und Entfernen dieser.
- Betrachten Sie es als Ihren primären Einstiegspunkt für Ihre Caching-Prozesse.
MemoryCache
- Die eigentliche Implementierung von
IMemoryCachebefindet sich in dieser Klasse. Sie bietet Verwaltung und tatsächlichen Speichercache-Speicher für zwischengespeicherte Elemente. - Dependency Injection wird üblicherweise in ASP.NET Core Anwendungen verwendet, um eine Instanz von
MemoryCacheabzurufen.
MemoryCacheEntryOptions
Mit dieser Klasse können Sie Konfigurationseinstellungen für spezifische Cache-Elemente festlegen. Diese Einstellungen regulieren Dinge wie:
- Ablauf: Sie können gleitende Ablaufzeiten (bei denen der Eintrag abläuft, wenn er innerhalb eines bestimmten Intervalls nicht aufgerufen wird) oder absolute Ablaufzeiten (bei denen der Eintrag automatisch abläuft) konfigurieren.
- Priorität: Diese beeinflusst, ob Elemente entfernt werden sollen, wenn der Cache voll ist. Höher priorisierte Einträge haben eine geringere Chance, entfernt zu werden.
- Callback nach dem Entfernen: Dadurch können Sie die Logik für die Handhabung von Daten feinabstimmen, wenn diese abgelaufen sind. Es ist besonders nützlich, wenn kritische Daten aktualisiert, Ressourcen verwaltet und Protokolle geführt werden müssen.
CacheEntry
- Innerhalb des Caches bezeichnet dieser Typ einen einzelnen Eintrag. Es bietet Methoden und Attribute zum Abrufen der Größenangaben, Ablaufeinstellungen und zwischengespeicherte Werte.
- Im Wesentlichen enthält es alle Informationen zu einem bestimmten Datenstück, das im Cache gespeichert ist.
ICacheEntry
- Dieses Interface beschreibt die grundlegenden Aktivitäten, die an einem Cache-Element durchgeführt werden können, ist jedoch nicht erforderlich für grundlegende Caching-Vorgänge. Es enthält Anweisungen zum Abrufen des Wertes und der Ablaufdetails. Dies ist häufiger in Szenarien, wo Sie den Zeichenfolgen-Schlüssel abrufen müssen.
- Diese Schnittstelle wird durch die Klasse
CacheEntryimplementiert, die eine praktische Implementierung dieser Funktionen bietet.
Installieren und Konfigurieren Microsoft.Extensions.Caching.Memory
Während des Anwendungsstarts wird der Cache-Service innerhalb der Dienstesammlung der ASP.NET Core-Anwendung konfiguriert. Nachfolgend eine ASP.NET Core Anwendung mit der Konfiguration Microsoft.Extensions.Caching.Memory:
Installieren Sie das erforderliche NuGet-Paket
Stellen Sie zunächst sicher, dass Microsoft.Extensions.Caching.Memory für Ihr Projekt installiert ist. Sie können es mit dem Befehl über die NuGet-Paket-Manager-Konsole installieren:
Install-Package Microsoft.Extensions.Caching.Memory
Oder wir können den NuGet-Paket-Manager verwenden, um das Paket zu installieren:

Konfigurieren Sie Dienste in Startup.cs
Navigieren Sie in Ihrer ASP.NET Core Anwendung zur Methode ConfigureServices, indem Sie die Datei Startup.cs öffnen. Um den Arbeitsspeicher-Cache-Dienst einzurichten, fügen Sie den folgenden Code hinzu:
using Microsoft.Extensions.Caching.Memory;
public void ConfigureServices(IServiceCollection services)
{
// Add memory cache service
services.AddMemoryCache();
// Other service configurations...
}
using Microsoft.Extensions.Caching.Memory;
public void ConfigureServices(IServiceCollection services)
{
// Add memory cache service
services.AddMemoryCache();
// Other service configurations...
}
Imports Microsoft.Extensions.Caching.Memory
Public Sub ConfigureServices(ByVal services As IServiceCollection)
' Add memory cache service
services.AddMemoryCache()
' Other service configurations...
End Sub
Das Speicher-Cache-Dienstobjekt wird zur Dienstesammlung der Anwendung hinzugefügt und mit diesem Code konfiguriert. Der Speichercache-Systemdienst wird über die Funktion AddMemoryCache mit seinen Standardkonfigurationen registriert.
Inject IMemoryCache
Sobald der Cache-Speicher eingerichtet ist, kann in jede Klasse oder Komponente, die zwischengespeichert werden muss, die IMemoryCache Schnittstelle injiziert werden. In einer Controller- oder Serviceklasse, zum Beispiel:
public class MyService
{
private readonly IMemoryCache _cache;
public MyService(IMemoryCache cache)
{
_cache = cache;
}
// Use _cache to perform caching operations...
}
public class MyService
{
private readonly IMemoryCache _cache;
public MyService(IMemoryCache cache)
{
_cache = cache;
}
// Use _cache to perform caching operations...
}
Public Class MyService
Private ReadOnly _cache As IMemoryCache
Public Sub New(ByVal cache As IMemoryCache)
_cache = cache
End Sub
' Use _cache to perform caching operations...
End Class
Methoden zum Zwischenspeichern und Abrufen von Daten aus dem Speicher werden durch die IMemoryCache Schnittstelle bereitgestellt.
Konfigurieren der Cache-Optionen
Durch das Festlegen von Cache-Parametern können Sie das Verhalten des Speichercaches ändern, einschließlich Größenbeschränkungen, Taktiken zur Cache-Eintragsentfernung und Regeln zum Ablauf von Cache-Werten. Hier ist ein Beispiel, wie Cache-Optionen gesetzt werden:
public void ConfigureServices(IServiceCollection services)
{
// Configure cache options
services.AddMemoryCache(options =>
{
options.SizeLimit = 1024; // Set the maximum size limit for the cache
options.CompactionPercentage = 0.75; // Set the percentage of memory to free up when the cache size exceeds the limit
options.ExpirationScanFrequency = TimeSpan.FromMinutes(5); // Set how often the cache should scan for expired items
});
// Other service configurations...
}
public void ConfigureServices(IServiceCollection services)
{
// Configure cache options
services.AddMemoryCache(options =>
{
options.SizeLimit = 1024; // Set the maximum size limit for the cache
options.CompactionPercentage = 0.75; // Set the percentage of memory to free up when the cache size exceeds the limit
options.ExpirationScanFrequency = TimeSpan.FromMinutes(5); // Set how often the cache should scan for expired items
});
// Other service configurations...
}
Public Sub ConfigureServices(ByVal services As IServiceCollection)
' Configure cache options
services.AddMemoryCache(Sub(options)
options.SizeLimit = 1024 ' Set the maximum size limit for the cache
options.CompactionPercentage = 0.75 ' Set the percentage of memory to free up when the cache size exceeds the limit
options.ExpirationScanFrequency = TimeSpan.FromMinutes(5) ' Set how often the cache should scan for expired items
End Sub)
' Other service configurations...
End Sub
Passen Sie die Einstellungen entsprechend den Anforderungen Ihrer Anwendung an.
Diese Anweisungen helfen Ihnen bei der Konfiguration von Microsoft.Extensions.Caching.Memory in Ihrer ASP.NET Core Anwendung, wodurch diese durch das Speichern und Abrufen häufig abgerufener Daten schneller und effizienter arbeiten kann.
Einstieg
Was ist IronPDF?
Mit der bekannten .NET-Bibliothek IronPDF können Programmierer PDF-Dokumente innerhalb von .NET-Anwendungen erstellen, bearbeiten und anzeigen. PDFs aus HTML-Inhalten, Bildern oder Rohdaten zu erstellen, ist nur eine der vielen Funktionen, die es für die Arbeit mit PDFs bietet. Weitere Funktionen umfassen das Hinzufügen von Text, Bildern und Formen zu bereits vorhandenen PDF-Dokumenten, das Konvertieren von HTML-Seiten zu PDFs sowie das Extrahieren von Text und Bildern aus PDFs.
Nachfolgend einige Funktionen von IronPDF:
- Erstellung von PDFs aus HTML, PNGs und unrohen Daten.
- Extraktion von Bildern und Text aus PDFs.
- Hinzufügen von PDF-Kopf- und Fußzeilen sowie Wasserzeichen.
- Passwortgeschützter und verschlüsselter PDF-Dokumente.
- Ausfüllen von Formularen und digitale Signaturfunktionen.
Installieren Sie das NuGet-Paket
Stellen Sie sicher, dass das IronPDF-Paket in Ihrem Projekt installiert ist. Die NuGet-Paket-Manager-Konsole kann zur Installation verwendet werden:
Install-Package IronPdf
Um auf die Funktion ConfigureServices zuzugreifen, öffnen Sie die Datei Startup.cs in Ihrer ASP.NET Core Anwendung. Um IronPDF zu konfigurieren, fügen Sie den folgenden Code hinzu.
using IronPdf;
public void ConfigureServices(IServiceCollection services)
{
// Configure IronPDF
services.AddSingleton<HtmlToPdf>();
// Other service configurations...
}
using IronPdf;
public void ConfigureServices(IServiceCollection services)
{
// Configure IronPDF
services.AddSingleton<HtmlToPdf>();
// Other service configurations...
}
Imports IronPdf
Public Sub ConfigureServices(ByVal services As IServiceCollection)
' Configure IronPDF
services.AddSingleton(Of HtmlToPdf)()
' Other service configurations...
End Sub
Durch die Konfiguration des IronPDF-Dienstes HtmlToPdf als Singleton stellt dieser Code sicher, dass die Anwendung nur eine Instanz von HtmlToPdf erstellt und verwendet.
Verwendung von Microsoft.Extensions.Caching.Memory mit IronPDF
In .NET Anwendungen bietet Microsoft.Extensions.Caching.Memory eine praktische Möglichkeit, häufig angeforderte Daten für einen schnelleren Abruf zu speichern.
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;
using System.Net;
using System.Net.Http.Headers;
using IronPdf;
namespace DemoWebApplication.Controllers
{
[ApiController]
[Route("[controller]")]
public class DemoController : ControllerBase
{
private readonly IMemoryCache _cache;
private readonly HtmlToPdf _htmlToPdf;
private readonly ILogger<DemoController> _logger;
public DemoController(ILogger<DemoController> logger, IMemoryCache cache, HtmlToPdf htmlToPdf)
{
_logger = logger;
_cache = cache;
_htmlToPdf = htmlToPdf;
}
[HttpGet]
public FileContentResult Generate()
{
string fileName = "Sample.pdf";
var stream = GeneratePdf("Hello IronPDF");
return new FileContentResult(stream, "application/octet-stream")
{
FileDownloadName = fileName
};
}
private byte[] GeneratePdf(string htmlContent)
{
// Object key
string cacheKey = "GeneratedPdf";
if (!_cache.TryGetValue(cacheKey, out byte[] pdfBytes))
{
// PDF not found in cache, generate it
var pdfDocument = _htmlToPdf.RenderHtmlAsPdf(htmlContent);
pdfBytes = pdfDocument.BinaryData;
// Cache the generated PDF with a sliding expiration of 1 hour
_cache.Set(cacheKey, pdfBytes, TimeSpan.FromHours(1));
}
return pdfBytes;
}
}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;
using System.Net;
using System.Net.Http.Headers;
using IronPdf;
namespace DemoWebApplication.Controllers
{
[ApiController]
[Route("[controller]")]
public class DemoController : ControllerBase
{
private readonly IMemoryCache _cache;
private readonly HtmlToPdf _htmlToPdf;
private readonly ILogger<DemoController> _logger;
public DemoController(ILogger<DemoController> logger, IMemoryCache cache, HtmlToPdf htmlToPdf)
{
_logger = logger;
_cache = cache;
_htmlToPdf = htmlToPdf;
}
[HttpGet]
public FileContentResult Generate()
{
string fileName = "Sample.pdf";
var stream = GeneratePdf("Hello IronPDF");
return new FileContentResult(stream, "application/octet-stream")
{
FileDownloadName = fileName
};
}
private byte[] GeneratePdf(string htmlContent)
{
// Object key
string cacheKey = "GeneratedPdf";
if (!_cache.TryGetValue(cacheKey, out byte[] pdfBytes))
{
// PDF not found in cache, generate it
var pdfDocument = _htmlToPdf.RenderHtmlAsPdf(htmlContent);
pdfBytes = pdfDocument.BinaryData;
// Cache the generated PDF with a sliding expiration of 1 hour
_cache.Set(cacheKey, pdfBytes, TimeSpan.FromHours(1));
}
return pdfBytes;
}
}
}
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.Extensions.Caching.Memory
Imports System.Net
Imports System.Net.Http.Headers
Imports IronPdf
Namespace DemoWebApplication.Controllers
<ApiController>
<Route("[controller]")>
Public Class DemoController
Inherits ControllerBase
Private ReadOnly _cache As IMemoryCache
Private ReadOnly _htmlToPdf As HtmlToPdf
Private ReadOnly _logger As ILogger(Of DemoController)
Public Sub New(ByVal logger As ILogger(Of DemoController), ByVal cache As IMemoryCache, ByVal htmlToPdf As HtmlToPdf)
_logger = logger
_cache = cache
_htmlToPdf = htmlToPdf
End Sub
<HttpGet>
Public Function Generate() As FileContentResult
Dim fileName As String = "Sample.pdf"
Dim stream = GeneratePdf("Hello IronPDF")
Return New FileContentResult(stream, "application/octet-stream") With {.FileDownloadName = fileName}
End Function
Private Function GeneratePdf(ByVal htmlContent As String) As Byte()
' Object key
Dim cacheKey As String = "GeneratedPdf"
Dim pdfBytes() As Byte
If Not _cache.TryGetValue(cacheKey, pdfBytes) Then
' PDF not found in cache, generate it
Dim pdfDocument = _htmlToPdf.RenderHtmlAsPdf(htmlContent)
pdfBytes = pdfDocument.BinaryData
' Cache the generated PDF with a sliding expiration of 1 hour
_cache.Set(cacheKey, pdfBytes, TimeSpan.FromHours(1))
End If
Return pdfBytes
End Function
End Class
End Namespace
Wir importieren die Namespaces, die für die Arbeit mit Microsoft und ASP.NET erforderlich sind Microsoft.Extensions.Caching.Memory. Wir erstellen den Controller DemoController, der von ControllerBase abgeleitet ist. Dieser Controller beantwortet Anfragen, die über HTTP gesendet werden. Eine Instanz von IMemoryCache wird in den Konstruktor des Controllers injiziert.
Um die Lebensdauer von Diensten zu steuern, einschließlich des Speichercaches, bietet ASP.NET Core Abhängigkeitsinjektion. Mit dem Attribut [HttpGet] wird die Methode Generate so konfiguriert, dass sie HTTP-GET-Anfragen an den Store von der angegebenen Route (/Demo) verarbeitet. Wir versuchen, die PDF-Daten aus dem Cache mit dem angegebenen Cache-Schlüssel abzurufen. Falls die Daten nicht im Cache gefunden werden, verwenden wir die Funktion GeneratePdf, um ein neues PDF zu erstellen.
In einem Szenario mit mehreren App-Servern stellen Sie sicher, dass Sie ein verteiltes Caching für eine konsistente Cache-Verwaltung über alle Server hinweg konfigurieren.
Um Microsoft.Extensions.Caching.Memory zu nutzen, konsultieren Sie die Dokumentation und den bereitgestellten Beispielcode, um Daten zwischenzuspeichern und die Leistung in ASP.NET Core Anwendungen zu verbessern. In der Praxis können Sie die Ablaufrichtlinien, Cache-Schlüssel und das Caching-Verhalten an die Bedürfnisse Ihrer Anwendung anpassen. Das Zwischenspeichern von Daten, die teuer zu generieren sind oder häufig von mehreren Threads aufgerufen werden, kann die gesamte Benutzererfahrung verbessern und Reaktionszeiten dramatisch verkürzen.

Abschluss
Alles in allem kann Microsoft.Extensions.Caching.Memory dazu verwendet werden, die Skalierbarkeit und Leistung von .NET Anwendungen zu steigern, insbesondere von solchen, die auf dem ASP.NET Core Framework basieren. Entwickler können die Benutzererfahrung verbessern, die Latenzzeit minimieren und den Datenzugriff optimieren, indem sie Speichervorgänge im Speicher nutzen. Die Bibliothek bietet eine flexible und benutzerfreundliche API zur Entwicklung von Caching-Strategien, die gezielt auf spezielle Anwendungsanforderungen ausgerichtet sind, sei es für das Caching von Referenzdaten, Abfrageergebnissen oder berechneten Werten. Sie können spürbare Geschwindigkeitssteigerungen und eine verbesserte Reaktionsfähigkeit Ihrer Anwendung erzielen, indem Sie die Best Practices für Caching anwenden und Microsoft.Extensions.Caching.Memory in Ihre .NET -Apps einfügen.
Durch die Nutzung der Funktionen von Microsoft.Extensions, unterstützt durch IronPDF für die dynamische PDF-Erstellung und Caching.Memory für effektives Daten-Caching, können .NET -Entwickler die Geschwindigkeit ihrer Anwendungen deutlich steigern. Diese leistungsstarke Kombination ermöglicht es Entwicklern, problemlos performante, skalierbare und responsive Anwendungen zu erstellen, indem die Serverlast reduziert, die Benutzerfreundlichkeit verbessert und der Verarbeitungsaufwand minimiert wird.
IronPDF kann zu einem angemessenen Preis erworben werden, und der Erwerb des Pakets beinhaltet eine lebenslange Lizenz. Das Paket bietet ein hervorragendes Preis-Leistungs-Verhältnis, da es bereits ab $999 erhältlich ist – eine einmalige Gebühr für mehrere Systeme. Für Benutzer mit Lizenzen bietet es rund um die Uhr Online-Ingenieurshilfe. Für weitere Details über die Kosten besuchen Sie bitte die IronPDF Licensing Page. Besuchen Sie diese Seite über Iron Software, um mehr über Produkte von Iron Software zu erfahren.
Häufig gestellte Fragen
Was ist der Zweck von Microsoft.Extensions.Caching.Memory in .NET-Anwendungen?
Microsoft.Extensions.Caching.Memory wird verwendet, um die Leistung in .NET-Anwendungen zu verbessern, indem es ein In-Memory-Objekt-Caching bereitstellt. Es speichert häufig abgerufene Daten im Speicher für einen schnellen Zugriff, was besonders vorteilhaft sein kann, wenn es zusammen mit IronPDF für PDF-Operationen verwendet wird.
Wie kann Caching die Leistung der PDF-Verarbeitung in .NET verbessern?
Caching kann die Verarbeitungszeit und Serverlast reduzieren, indem häufig angeforderte PDF-Daten im Speicher gespeichert werden. In Kombination mit einer Bibliothek wie IronPDF ermöglicht es eine schnellere Erstellung und Bearbeitung von PDFs, was die Geschwindigkeit und Reaktionsfähigkeit der Anwendung insgesamt verbessert.
Wie implementiert man In-Memory-Caching in einer ASP.NET Core-Anwendung?
In ASP.NET Core können Sie In-Memory-Caching implementieren, indem Sie services.AddMemoryCache() in der ConfigureServices-Methode von Startup.cs hinzufügen. Dies lässt sich nahtlos mit IronPDF integrieren, um eine effiziente PDF-Verarbeitung und Datenabrufe zu gewährleisten.
Was ist die Rolle von IMemoryCache beim Caching?
IMemoryCache ist eine Schnittstelle, die in .NET-Anwendungen verwendet wird, um Cache-Einträge effektiv zu verwalten. In Kombination mit IronPDF ermöglicht es Entwicklern, PDF-Daten schnell zu speichern und abzurufen, was die Anwendungsleistung verbessert.
Welche häufigen Konfigurationsoptionen gibt es für das Caching in .NET?
Häufige Konfigurationsoptionen umfassen das Festlegen von Ablaufstrategien, Größenbeschränkungen und Ausmarktungsstrategien mit MemoryCacheEntryOptions. Diese Konfigurationen optimieren den Caching-Prozess, insbesondere bei der Verwendung von IronPDF zur Handhabung von PDFs.
Wie können Entwickler dynamische PDFs in einer .NET-Anwendung erstellen?
Entwickler können IronPDF verwenden, um dynamische PDFs in .NET-Anwendungen zu erstellen. Es unterstützt die Konvertierung von HTML zu PDF, das Hinzufügen von Kopf- und Fußzeilen und mehr, was es zu einem vielseitigen Werkzeug für die PDF-Erstellung und -Bearbeitung macht.
Welche Vorteile bietet die Integration von Caching mit der PDF-Erstellung in .NET?
Die Integration von Caching mit der PDF-Erstellung unter Verwendung von IronPDF in .NET-Anwendungen kann die Geschwindigkeit erheblich erhöhen und die Latenz verringern. Dies führt zu einer besseren Benutzererfahrung und skalierbareren Anwendungen dank des schnelleren Zugriffs auf häufig verwendete Daten.
Wie können Sie das Caching-System in .NET-Anwendungen überwachen und verbessern?
Leistungszähler können implementiert werden, um die Effizienz des Caching-Systems in .NET-Anwendungen zu überwachen. Dieses Monitoring ermöglicht Anpassungen und Verbesserungen, um eine optimale Leistung sicherzustellen, insbesondere bei der Arbeit mit IronPDF für PDF-Aufgaben.




