IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

Microsoft.Extensions.Caching.Memory Example (Avec PDF) en C#

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

Pour construire des applications de manière réactive et efficace, des méthodes d'optimisation sont fréquemment nécessaires pour les applications .NET. La mise en cache est une approche puissante qui consiste à stocker temporairement du matériel fréquemment demandé dans un cache distribué pour faciliter une récupération plus rapide. La réduction du temps de traitement et de la charge du serveur avec cette stratégie peut entraîner une augmentation significative des performances de l'application. De plus, des compteurs de performance peuvent être mis en œuvre pour surveiller et améliorer le système de mise en cache.

[Le cache](https://en.wikipedia.org/wiki/Cache_(computing) est une stratégie d'optimisation puissante dans ce contexte. Microsoft.Extensions.Caching.Memory fournit une solution de mise en cache d'objets en mémoire efficace pour les applications .NET. Vos applications centrées sur le PDF fonctionneront et répondront beaucoup plus rapidement si vous utilisez stratégiquement le cache MemoryCache avec IronPDF.

Nous explorons comment intégrer efficacement les exemples C# Microsoft.Extensions.Caching.Memory avec IronPDF. Dans cet article, nous discuterons des avantages de la mise en cache concernant le processus de conversion HTML en PDF d'IronPDF, passerons en revue quelques conseils de mise en œuvre utiles et offrirons une présentation détaillée de la configuration de la mise en cache dans votre programme IronPDF. Lorsque tout sera dit et fait, vous aurez les compétences et les ressources nécessaires pour développer des applications PDF efficaces et intuitives.

Microsoft.Extensions.Caching.Memory : La fondation de la mise en cache dans .NET

La mise en cache est une méthode utilisée dans de nombreuses applications .NET haute performance qui stocke les données fréquemment accédées en mémoire pour une récupération rapide. Microsoft.Extensions est l'une des nombreuses options de mise en cache accessibles. Caching.Memory est une option particulièrement puissante et adaptable. Cette bibliothèque est un composant du plus grand espace de noms Microsoft.Extensions.Caching offrant une approche de mise en cache en mémoire simple mais efficace.

Types clés au sein de "Microsoft.Extensions.Caching.Memory"

IMemoryCache

  • La capacité fondamentale pour utiliser le cache en mémoire est représentée par cette interface. Il offre des moyens de gérer les entrées mises en cache et de les ajouter, récupérer et supprimer.
  • Considérez-le comme votre principal point d'entrée pour vos processus de mise en cache.

MemoryCache

  • La mise en œuvre réelle de IMemoryCache se trouve dans cette classe. Il offre une administration et un stockage réel en mémoire pour les éléments mis en cache.
  • L'injection de dépendance est généralement utilisée dans les applications ASP.NET Core pour récupérer une instance de MemoryCache.

MemoryCacheEntryOptions

Vous pouvez spécifier les paramètres de configuration pour des éléments de cache spécifiques avec cette classe. Ces paramètres régulent des choses comme :

  • Expiration : Vous pouvez configurer des fenêtres d'expiration glissantes (où l'entrée expire si elle n'est pas accédée dans un certain intervalle) ou des temps d'expiration absolus (où l'entrée expire automatiquement).
  • Priorité : Cela influence si l'on doit évincer des éléments lorsque le cache se remplit. Les entrées de priorité supérieure ont moins de chances d'être supprimées.
  • Rappel post-échéance : Cela vous permet de régler finement la logique de gestion des données lorsqu'elles ont expiré. C'est particulièrement utile là où des données critiques nécessitent une actualisation, une gestion des ressources et une journalisation.

CacheEntry

  • Dans le cache, ce type désigne une entrée unique. Il offre des méthodes et attributs pour récupérer les détails de taille, les paramètres d'expiration et les valeurs mises en cache.
  • En essence, il contient toutes les informations sur un élément de données particulier qui est conservé dans le cache.

ICacheEntry

  • Cette interface décrit les activités de base qui peuvent être effectuées sur un élément de cache, bien qu'elle ne soit pas nécessaire pour les opérations de mise en cache de base. Il contient des instructions sur la façon de récupérer les détails de la valeur et de l'expiration. C'est plus courant dans des scénarios où vous devez récupérer la clé de chaîne.
  • Cette interface est implémentée par la classe CacheEntry, qui offre une mise en œuvre pratique de ces fonctionnalités.

Installer et configurer Microsoft.Extensions.Caching.Memory

Lors du démarrage de l'application, la mémoire est utilisée pour configurer le service de cache à l'intérieur de la collection de services de l'application ASP.NET Core. Ci-dessous se trouve une application ASP.NET Core avec Microsoft.Extensions.Caching.Memory configurée :

Installer le package NuGet requis

Tout d'abord, assurez-vous que Microsoft.Extensions.Caching.Memory est installé pour votre projet. Vous pouvez l'installer en utilisant la console du gestionnaire de packages NuGet avec la commande :

PM > Install-Package Microsoft.Extensions.Caching.Memory

Ou nous pouvons utiliser le gestionnaire de packages NuGet pour installer le package :

Exemple de Microsoft.Extensions.Caching.Memory (Avec PDF) en C#: Figure 1 - Recherchez Microsoft.Extensions.Caching.Memory dans le gestionnaire de packages NuGet et installez-le

Configurer les services dans Startup.cs

Accédez à la méthode ConfigureServices dans votre application ASP.NET Core en ouvrant le fichier Startup.cs. Pour configurer le service de cache en mémoire, ajoutez le code suivant :

using Microsoft.Extensions.Caching.Memory;
public void ConfigureServices(IServiceCollection services)
{
    // Add memory cache service
    services.AddMemoryCache();
    // Other service configurations...
}

L'objet du service de cache en mémoire est ajouté à la collection de services de l'application et configuré par ce code. Le service de système de cache en mémoire est enregistré en utilisant ses configurations par défaut via la fonction AddMemoryCache.

Injecter IMemoryCache

Une fois le magasin de cache mis en place, toute classe ou composant nécessitant une mise en cache peut avoir l'interface IMemoryCache injectée en elle. Par exemple, dans un contrôleur ou une classe de service :

public class MyService
{
    private readonly IMemoryCache _cache;
    public MyService(IMemoryCache cache)
    {
        _cache = cache;
    }
    // Use _cache to perform caching operations...
}

Des méthodes de mise en cache et de récupération de données de la mémoire sont fournies par l'interface IMemoryCache.

Configurer les options de cache

En définissant des paramètres de cache, vous pouvez modifier le comportement du cache en mémoire, y compris les restrictions de taille, les tactiques d'éviction des entrées de cache et les règles d'expiration des valeurs de cache. Voici une illustration de la manière de définir des options de cache :

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...
}

Modifiez les paramètres selon les spécifications de votre application.

Ces instructions vous aideront à configurer Microsoft.Extensions.Caching.Memory dans votre application ASP.NET Core, lui permettant de fonctionner plus rapidement et plus efficacement en stockant et en récupérant les données souvent consultées.

Commencer

Qu'est-ce qu'IronPDF ?

Avec l'aide de la célèbre bibliothèque .NET IronPDF, les programmeurs peuvent générer, éditer et afficher des documents PDF à l'intérieur d'applications .NET. Créer des PDFs à partir de contenu HTML, d'images ou de données brutes n'est qu'une des nombreuses fonctions qu'il offre pour travailler avec des PDFs. D'autres fonctionnalités incluent l'ajout de texte, d'images et de formes aux documents PDF existants, la conversion de pages HTML en PDFs et l'extraction de texte et d'images à partir de PDFs.

Voici quelques caractéristiques d'IronPDF :

  • Créer des PDFs à partir de HTML, PNGs et de données non traitées.
  • Extraire des images et du texte de PDFs.
  • Ajouter des en-têtes, des pieds de page et des filigranes aux PDF.
  • Documents PDF avec protection par mot de passe et chiffrement.
  • Remplir des formulaires et fournir des possibilités de signature numérique.

Installer le package NuGet

Dans votre projet, assurez-vous que le package IronPDF est installé. La console du Gestionnaire de Packages NuGet peut être utilisée pour l'installer :

PM > Install-Package IronPdf

Pour accéder à la fonction ConfigureServices, ouvrez le fichier Startup.cs dans votre application ASP.NET Core. Pour configurer IronPDF, ajoutez le code suivant.

using IronPdf;
public void ConfigureServices(IServiceCollection services)
{
    // Configure IronPDF
    services.AddSingleton<HtmlToPdf>();
    // Other service configurations...
}

En configurant le service HtmlToPdf de IronPDF comme un singleton, ce code garantit que l'application crée et utilise une seule instance de HtmlToPdf.

Utilisation de Microsoft.Extensions.Caching.Memory avec IronPDF

Dans les applications .NET, Microsoft.Extensions.Caching.Memory offre un moyen pratique de stocker les données fréquemment demandées pour une récupération plus rapide.

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;
        }
    }
}

Nous importons les espaces de noms requis pour travailler avec Microsoft et ASP.NET Microsoft.Extensions.Caching.Memory. Nous créons le contrôleur DemoController, qui est dérivé de ControllerBase. Ce contrôleur répondra aux requêtes envoyées via HTTP. Une instance de IMemoryCache est injectée dans le constructeur du contrôleur.

Pour contrôler la durée de vie des services, y compris le cache en mémoire, ASP.NET Core offre l'injection de dépendances. Avec l'attribut [HttpGet] appliqué, la méthode Generate est désignée pour gérer les requêtes HTTP GET vers le magasin depuis l'itinéraire désigné (/Demo). Nous essayons d'obtenir les données PDF du cache en utilisant la clé de cache donnée. Si les données ne sont pas trouvées dans le cache, nous utilisons la fonction GeneratePdf pour créer un nouveau PDF.

Dans un scénario avec plusieurs serveurs d'applications, assurez-vous de configurer une mise en cache distribuée pour une gestion cohérente du cache sur tous les serveurs.

Pour utiliser Microsoft.Extensions.Caching.Memory, reportez-vous à la documentation et au code d'exemple fourni pour mettre en cache les données et améliorer les performances dans les applications ASP.NET Core. En pratique, vous pouvez ajuster les politiques d'expiration, les clés de cache et le comportement de mise en cache pour répondre aux besoins de votre application. Mettre en cache des données coûteuses à générer ou souvent accédées par plusieurs threads peut améliorer l'expérience utilisateur globale et réduire considérablement les temps de réponse.

Exemple de Microsoft.Extensions.Caching.Memory (Avec PDF) en C#: Figure 2 - Exemple de sortie du code ci-dessus

Conclusion

Tout bien considéré, Microsoft.Extensions.Caching.Memory peut être utilisé pour augmenter la scalabilité et la performance des applications .NET, en particulier celles basées sur le framework ASP.NET Core. Les développeurs peuvent améliorer l'expérience utilisateur, réduire la latence et optimiser l'accès aux données en utilisant la mise en cache en mémoire. La bibliothèque fournit une API flexible et conviviale pour développer des stratégies de mise en cache adaptées aux besoins spécifiques de l'application, que ce soit pour mettre en cache des données de référence, des résultats de requêtes ou des valeurs calculées. Vous pouvez obtenir des augmentations de vitesse notables et une réactivité améliorée de l'application en adoptant les meilleures pratiques de mise en cache et en ajoutant Microsoft.Extensions.Caching.Memory dans vos applications .NET.

En tirant parti des fonctionnalités Microsoft.Extensions, avec l'aide de IronPDF pour la création dynamique de PDF et Caching.Memory pour la mise en cache efficace des données, les développeurs .NET peuvent grandement améliorer la vitesse de leurs applications. Cette combinaison puissante permet aux développeurs de concevoir facilement des applications performantes, évolutives et réactives en réduisant la charge serveur, en améliorant l'expérience utilisateur, et en éliminant les surcharges de traitement.

IronPDF peut être acheté à un prix raisonnable, et l'acquisition du package inclut une licence à vie. Le package offre une valeur exceptionnelle car il commence à $999, une charge unique pour plusieurs systèmes. Pour les utilisateurs avec licences, il offre une aide en ligne ingénierie disponible 24h/24 et 7j/7. Pour plus de détails sur le coût, veuillez visiter la page de licence IronPDF. Visitez cette page sur Iron Software pour en savoir plus sur les produits fabriqués par Iron Software.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $