.NETヘルプ Microsoft.Extensions.Caching.Memoryの例(PDF付き)in C# Jacob Mellor 更新日:2025年6月22日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る アプリケーションを迅速かつ効果的に構築するには、.NETアプリケーションに最適化手法が必要になることがよくあります。 キャッシングは、要求される頻度が高い素材を一時的に分散キャッシュに保存し、より迅速な取得を可能にする強力なアプローチです。 この戦略により処理時間とサーバー負荷の軽減が達成され、アプリケーションパフォーマンスが大幅に向上することがあります。 さらに、パフォーマンスカウンターを実装してキャッシングシステムを監視し、改善することができます。 キャッシングは、このコンテキストで強力な最適化戦略です。 Microsoft.Extensions.Caching.Memory は、 .NETアプリケーションに効率的なメモリ内オブジェクト キャッシュ ソリューションを提供します。 IronPDFとともに MemoryCache キャッシュを戦略的に使用すると、PDF 中心のアプリの動作と応答が大幅に高速化されます。 Microsoft.Extensions.Caching.Memory C# の例をIronPDFと効率的に統合する方法を探ります。 この記事では、IronPDF HTMLからPDFへの変換プロセスに関連するキャッシングの利点を議論し、有用な実装のヒントを紹介し、IronPDFプログラムでキャッシングを構成するための詳細な説明を提供します。 最終的には、効果的で直感的なPDFアプリケーションを開発するために必要なスキルとリソースを手に入れることができます。 Microsoft.Extensions.Caching.Memory: .NETにおけるキャッシュの基礎 キャッシングは、多くの高性能.NETアプリケーションで使用される手法で、頻繁にアクセスされるデータをメモリに保存して迅速に取得できるようにします。 Microsoft.Extensions は、アクセス可能な多くのキャッシュ オプションの 1 つです。 Caching.Memory は特に強力で適応性の高いオプションです。 このライブラリは、より大規模な Microsoft.Extensions.Caching 名前空間のコンポーネントであり、簡単でありながら効果的なメモリ内キャッシュ アプローチを提供します。 "Microsoft.Extensions.Caching.Memory"内のキータイプ IMemoryCache インメモリキャッシュを利用するための基本的な機能をこのインターフェースが表しています。 キャッシュされたエントリを管理し、それらを追加、取得、削除する方法を提供します。 これはキャッシングプロセスを行う際の主要なエントリポイントと考えてください。 MemoryCache IMemoryCache の実際の実装はこのクラスにあります。 キャッシュされた項目のための管理と実際のインメモリストレージを提供します。 依存性注入は通常、 ASP.NET Coreアプリケーションで MemoryCache のインスタンスを取得するために使用されます。 MemoryCacheEntryOptions このクラスを使用すると、特定のキャッシュアイテムに対して構成設定を指定できます。 これらの設定は、以下のような要素を調整します: 有効期限 : スライドエクスパイアウィンドウ(一定の間隔内にアクセスされない場合にエントリが期限切れになるもの)や絶対有効期限(エントリが自動的に期限切れになるもの)を設定できます。 優先度 : キャッシュが満杯の際に項目を削除するかどうかに影響します。優先度が高いエントリは削除される可能性が低くなります。 削除後のコールバック:これは、データの期限切れ時の処理ロジックを微調整するために使用されます。 特に、重要なデータの更新、資源管理、ログ記録が必要な場合に有用です。 CacheEntry キャッシュ内では、このタイプが単一のエントリを示します。 サイズの詳細、期限設定、およびキャッシュされた値を取得するためのメソッドと属性を提供します。 本質的には、キャッシュ内に保存されている特定のデータ片に関するすべての情報が含まれています。 ICacheEntry このインターフェースは、キャッシュアイテムに対して実行できる基本的な活動を概説していますが、基本的なキャッシング操作には必ずしも必要ではありません。 値と期限の詳細を取得するための手順を含みます。 これは、文字列キーを取得する必要がある場合により一般的です。 このインターフェイスは、これらの機能の実用的な実装を提供する CacheEntry クラスによって実装されます。 インストールと構成 Microsoft.Extensions.Caching.Memory アプリケーションの起動時に、ASP.NET Coreアプリケーションのサービスコレクション内でキャッシュサービスを構成するためにメモリが使用されます。 以下は、Microsoft.Extensions.Caching.Memory が構成されたASP.NET Coreアプリケーションです。 必要なNuGetパッケージのインストール まず、プロジェクトに Microsoft.Extensions.Caching.Memory がインストールされていることを確認します。 NuGetパッケージマネージャーコンソールを使用して次のコマンドでインストールできます: Install-Package Microsoft.Extensions.Caching.Memory また、NuGetパッケージマネージャーを使用してパッケージをインストールすることもできます: スタートアップ.csでサービスを構成する ASP.NET Coreアプリの Startup.cs ファイルを開き、ConfigureServices メソッドに移動します。メモリキャッシュサービスを設定するには、次のコードを追加します。 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... } $vbLabelText $csharpLabel このコードにより、アプリケーションのサービスコレクションにメモリキャッシュサービスオブジェクトが追加され、構成されます。 メモリ キャッシュ システム サービスは、AddMemoryCache 関数を介してデフォルト構成を使用して登録されます。 挿入 IMemoryCache キャッシュ ストアが設定されると、キャッシュが必要なクラスまたはコンポーネントに IMemoryCache インターフェイスを挿入できるようになります。 たとえば、コントローラーまたはサービスクラスで: 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... } $vbLabelText $csharpLabel メモリからデータをキャッシュおよび取得するためのメソッドは、IMemoryCache インターフェイスによって提供されます。 キャッシュオプションの構成 キャッシュパラメータを設定することで、サイズ制限、キャッシュエントリの削除戦術、およびキャッシュ値の期限ルールを含むメモリキャッシュの動作を変更できます。 キャッシュオプションを設定する方法の例を示します: 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... } $vbLabelText $csharpLabel アプリケーションの仕様に応じて設定を変更します。 これらの手順は、 ASP.NET Coreアプリケーションで Microsoft.Extensions.Caching.Memory を構成し、頻繁にアクセスされるデータを保存および取得することで、より迅速かつ効率的に動作できるようにするのに役立ちます。 開始方法 IronPDF とは何ですか? IronPDFという有名な.NETライブラリの助けを借りて、プログラマーは.NETアプリケーション内でPDFドキュメントを生成、編集、表示できます。 HTMLコンテンツ、画像、または生データからPDFを作成することは、PDFを扱うために提供される多くの機能の1つです。 他の機能には、既存のPDFドキュメントへのテキスト、画像、形状の追加、HTMLページのPDFへの変換、およびPDFからのテキストおよび画像の抽出が含まれています。 以下にIronPDFの機能をいくつか示します: HTML、PNG、および未処理のデータからのPDF作成。 PDFからの画像およびテキストの抽出。 PDFのヘッダー、フッター、透かしの追加。 パスワード保護および暗号化を使用したPDFドキュメント。 フォームの記入およびデジタル署名機能。 NuGetパッケージのインストール プロジェクトにIronPDFパッケージがインストールされていることを確認します。 NuGetパッケージマネージャーコンソールを使用してインストールできます: Install-Package IronPdf ConfigureServices 関数にアクセスするには、 ASP.NET Coreアプリケーションで Startup.cs ファイルを開きます。 IronPDFを構成するには、次のコードを追加します。 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... } $vbLabelText $csharpLabel このコードでは、IronPDF の HtmlToPdf サービスをシングルトンとして構成することにより、アプリケーションが HtmlToPdf のインスタンスを 1 つだけ作成して使用することを保証します。 IronPDFで Microsoft.Extensions.Caching.Memory を使用する .NETアプリケーションでは、Microsoft.Extensions.Caching.Memory は、頻繁に要求されるデータを保存して、より迅速に取得するための実用的な手段を提供します。 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; } } } $vbLabelText $csharpLabel Microsoft およびASP.NET Microsoft.Extensions.Caching.Memory で動作するために必要な名前空間をインポートします。 ControllerBase から派生した DemoController コントローラーを作成します。 このコントローラはHTTP経由で送信されたクエリに応答します。コントローラのコンストラクタにはIMemoryCacheのインスタンスが挿入されます。 ASP.NET Coreは、メモリキャッシュを含むサービスのライフタイムを管理するための依存性注入を提供します。 [HttpGet] 属性を適用すると、Generate メソッドは、指定されたルート (/Demo) からストアへの HTTP GET 要求を処理するようにマークされます。 指定されたキャッシュキーを使用してキャッシュからPDFデータを取得しようとします。 キャッシュ内にデータが見つからない場合は、GeneratePdf 関数を使用して新しい PDF を作成します。 複数のアプリサーバーがある場合、すべてのサーバーで一貫したキャッシュ処理を行うために分散キャッシングを構成してください。 Microsoft.Extensions.Caching.Memory を利用するには、 ASP.NET Coreアプリケーションでデータをキャッシュし、パフォーマンスを向上させるために提供されているドキュメントとサンプル コードを参照してください。 実際には、アプリケーションのニーズに合わせて有効期限ポリシー、キャッシュキー、キャッシング動作を調整できます。 生成に費用がかかるデータまたは複数のスレッドによって頻繁にアクセスされるデータをキャッシュすることで、全体的なユーザーエクスペリエンスを向上させ、応答時間を劇的に短縮できます。 結論 総合的に判断すると、Microsoft.Extensions.Caching.Memory は、特にASP.NET Coreフレームワークに基づく.NETアプリケーションのスケーラビリティとパフォーマンスを向上させるために使用できます。 開発者は、インメモリキャッシングを活用してユーザーエクスペリエンスを改善し、レイテンシを最小限にし、データアクセスを最適化できます。 ライブラリは、リファレンスデータ、クエリ結果、または計算値をキャッシュするための、特定のアプリケーション要件に合わせたキャッシング戦略を開発するための柔軟でユーザーフレンドリーなAPIを提供します。 キャッシュのベスト プラクティスを採用し、 .NETアプリに Microsoft.Extensions.Caching.Memory を追加することで、速度の顕著な向上とアプリケーションの応答性の向上を実現できます。 .NET開発者は、Microsoft.Extensionsの機能を活用し、 IronPDFによる動的なPDF作成とCaching.Memoryによる効果的なデータキャッシュを活用することで、アプリの速度を大幅に向上させることができます。この強力な組み合わせにより、開発者はサーバー負荷の軽減、ユーザーエクスペリエンスの向上、処理オーバーヘッドの排除を実現し、高性能でスケーラブル、かつ応答性に優れたアプリケーションを容易に設計できます。 IronPDFはリーズナブルな価格で購入でき、パッケージを取得するとライセンスが一生有効になります。 このパッケージは、複数のシステムに対して単一の料金である $799 から始まるため、非常に価値があります。 ライセンスを持つユーザーには、24時間体制でオンラインエンジニアリング支援が提供されます。 料金の詳細については、IronPDFライセンスページをご覧ください。 Iron Softwareに関するページを訪れて、Iron Softwareが製造する製品について詳しく学んでください。 よくある質問 Microsoft.Extensions.Caching.Memory for .NETアプリケーションにおける目的は何ですか? Microsoft.Extensions.Caching.Memoryは、メモリ内オブジェクトキャッシングを提供することで、.NETアプリケーションのパフォーマンスを向上させます。頻繁にアクセスされるデータをメモリに保存することで迅速な取得が可能になり、特にIronPDFと併用することでPDF操作に役立ちます。 キャッシングは.NETでのPDF処理のパフォーマンスをどのように向上させることができますか? キャッシングは頻繁に要求されるPDFデータをメモリに保存することで、処理時間やサーバー負荷を軽減します。IronPDFのようなライブラリと統合することで、PDFの作成や操作をより迅速に行うことができ、アプリケーション全体の速度と応答性を向上させます。 ASP.NET Coreアプリケーションでメモリ内キャッシングをどのように実装しますか? ASP.NET Coreでは、Startup.csのConfigureServicesメソッドにservices.AddMemoryCache()を追加することで、メモリ内キャッシュを実装できます。これにより、IronPDFとシームレスに統合され、効率的なPDF処理とデータ取得が可能になります。 キャッシングにおけるIMemoryCacheの役割は何ですか? IMemoryCacheは、.NETアプリケーションにおけるキャッシュエントリを効果的に管理するためのインターフェイスです。IronPDFと組み合わせることで、開発者はPDFデータを迅速に保存および取得することができ、アプリケーションのパフォーマンスを向上させます。 キャッシングの一般的な構成オプションは.NETで何ですか? 一般的な設定オプションには、MemoryCacheEntryOptionsを使用して、有効期限ポリシー、サイズ制限、強制排除戦略を設定することが含まれます。これらの設定は、特にIronPDFを使用してPDFを扱う場合にキャッシングプロセスを最適化します。 開発者は.NETアプリケーションで動的PDFをどのように作成できますか? 開発者はIronPDFを使用して.NETアプリケーションで動的PDFを作成できます。HTMLからPDFへの変換、ヘッダーやフッターの追加などをサポートしており、PDFの生成と操作において多目的なツールとなります。 キャッシングを.NETでのPDF生成と統合することの利点は何ですか? IronPDFを使用した.NETアプリケーションでのPDF生成にキャッシングを統合すると、速度が大幅に向上し、待ち時間が短縮されます。これにより、頻繁に使用されるデータへのアクセスが速くなり、ユーザーエクスペリエンスが向上し、アプリケーションがよりスケーラブルになります。 どのようにして.NETアプリケーションのキャッシングシステムを監視し、強化することができますか? パフォーマンスカウンターを実装することで、.NETアプリケーション内のキャッシングシステムの効率を監視できます。この監視により、調整や強化が可能になり、特にPDFタスクにIronPDFを使用する際に最適なパフォーマンスが確保されます。 Jacob Mellor 今すぐエンジニアリングチームとチャット 最高技術責任者(CTO) ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。 関連する記事 更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む 更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む OpenAPI .NET(開発者向けの動作方法)Ocelot .NET(開発者向けの仕...
更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む
更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む