.NETヘルプ Microsoft.Extensions.Caching.Memoryの例(PDF付き)in C# Curtis Chau 更新日:6月 22, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article アプリケーションを迅速かつ効果的に構築するには、.NETアプリケーションに最適化手法が必要になることがよくあります。 キャッシングは、要求される頻度が高い素材を一時的に分散キャッシュに保存し、より迅速な取得を可能にする強力なアプローチです。 この戦略により処理時間とサーバー負荷の軽減が達成され、アプリケーションパフォーマンスが大幅に向上することがあります。 さらに、パフォーマンスカウンターを実装してキャッシングシステムを監視し、改善することができます。 キャッシングは、このコンテキストで強力な最適化戦略です。 Microsoft.Extensions.Caching.Memory は、.NETアプリケーション向けに効率的なインメモリオブジェクトキャッシングソリューションを提供します。 あなたのPDF中心のアプリは、MemoryCacheキャッシュをIronPDFと戦略的に使用することで、動作がより迅速に、そして応答性も高くなります。 <code>Microsoft.Extensions.Caching.Memory</code>のC#例をIronPDFに効率的に統合する方法を探ります。 この記事では、IronPDF HTMLからPDFへの変換プロセスに関連するキャッシングの利点を議論し、有用な実装のヒントを紹介し、IronPDFプログラムでキャッシングを構成するための詳細な説明を提供します。 最終的には、効果的で直感的なPDFアプリケーションを開発するために必要なスキルとリソースを手に入れることができます。 Microsoft.Extensions.Caching.Memory: .NETにおけるキャッシングの基盤 キャッシングは、多くの高性能.NETアプリケーションで使用される手法で、頻繁にアクセスされるデータをメモリに保存して迅速に取得できるようにします。 Microsoft.Extensionsは、多くのキャッシングオプションのひとつです。 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パッケージマネージャーを使用することができます: !C#でのMicrosoft.Extensions.Caching.Memoryの例(With PDF):図1 - NuGetパッケージマネージャーでMicrosoft.Extensions.Caching.Memoryを検索し、インストール スタートアップ.csでサービスを構成する Startup.csファイルを開いて、ASP.NET Coreアプリの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... } Imports Microsoft.Extensions.Caching.Memory Public Sub ConfigureServices(ByVal services As IServiceCollection) ' Add memory cache service services.AddMemoryCache() ' Other service configurations... End Sub $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... } 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 $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... } 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 $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 Startup.csファイルをASP.NET Coreアプリケーションで開き、ConfigureServices関数にアクセスします。 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... } Imports IronPdf Public Sub ConfigureServices(ByVal services As IServiceCollection) ' Configure IronPDF services.AddSingleton(Of HtmlToPdf)() ' Other service configurations... End Sub $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; } } } 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 $vbLabelText $csharpLabel MicrosoftおよびASP.NETと共に作業するために必要な名前空間をインポートします Microsoft.Extensions.Caching.Memory。 ControllerBaseから派生したDemoControllerコントローラーを作成します。 このコントローラーは、HTTPを介して送信されたクエリに応答します。IMemoryCacheのインスタンスは、コントローラーのコンストラクターに注入されます。 ASP.NET Coreは、メモリキャッシュを含むサービスのライフタイムを管理するための依存性注入を提供します。 [HttpGet]属性を適用して、指定されたルート (/Demo) からのHTTP GETリクエストを処理するためにGenerateメソッドをマークします。 指定されたキャッシュキーを使用してキャッシュからPDFデータを取得しようとします。 キャッシュにデータが見つからない場合、GeneratePdf関数を使用して新しいPDFを作成します。 複数のアプリサーバーがある場合、すべてのサーバーで一貫したキャッシュ処理を行うために分散キャッシングを構成してください。 Microsoft.Extensions.Caching.Memoryを活用してデータをキャッシュし、ASP.NET Coreアプリケーションでパフォーマンスを向上させるために、提供されたドキュメントおよびサンプルコードを参照してください。 実際には、アプリケーションのニーズに合わせて有効期限ポリシー、キャッシュキー、キャッシング動作を調整できます。 生成に費用がかかるデータまたは複数のスレッドによって頻繁にアクセスされるデータをキャッシュすることで、全体的なユーザーエクスペリエンスを向上させ、応答時間を劇的に短縮できます。 !C#でのMicrosoft.Extensions.Caching.Memoryの例(With PDF):図2 - 上記のコードからの出力例 結論 総合的に見て、Microsoft.Extensions.Caching.Memoryを使用することで、特にASP.NET Coreフレームワークに基づいた.NETアプリケーションのスケーラビリティおよびパフォーマンスを向上させることができます。 開発者は、インメモリキャッシングを活用してユーザーエクスペリエンスを改善し、レイテンシを最小限にし、データアクセスを最適化できます。 ライブラリは、リファレンスデータ、クエリ結果、または計算値をキャッシュするための、特定のアプリケーション要件に合わせたキャッシング戦略を開発するための柔軟でユーザーフレンドリーなAPIを提供します。 キャッシングのベストプラクティスを採用し、.NETアプリにMicrosoft.Extensions.Caching.Memoryを追加することで、目に見えて速度が向上し、アプリケーションの応答性が高まります。 .NET開発者は、IronPDFを活用した動的PDF作成とを活用した効率的なデータキャッシングを駆使することで、アプリの速度を大幅に向上させることができます。この強力な組み合わせにより、開発者はサーバー負荷を軽減し、ユーザーエクスペリエンスを向上させ、処理のオーバーヘッドを排除しながら、高性能でスケーラブルで応答性の高いアプリケーションを簡単に設計することが可能になります。 IronPDFはリーズナブルな価格で購入でき、パッケージを取得するとライセンスが一生有効になります。 パッケージは、$799で始まる単一の料金で複数のシステムに対応し、優れた価値を提供します。 ライセンスを持つユーザーには、24時間体制でオンラインエンジニアリング支援が提供されます。 料金の詳細については、IronPDFライセンスページをご覧ください。 Iron Softwareが製作した製品について詳しく知るには、こちらIron Softwareのページをご覧ください。 よくある質問 Microsoft.Extensions.Caching.Memoryの.NETアプリケーションにおける目的は何ですか? Microsoft.Extensions.Caching.Memoryは、メモリ内オブジェクトキャッシングを提供することで、.NETアプリケーションのパフォーマンスを向上させます。頻繁にアクセスされるデータをメモリに保存することで迅速な取得が可能になり、特にIronPDFと併用することでPDF操作に役立ちます。 キャッシングは.NETでのPDF処理のパフォーマンスをどのように向上させることができますか? キャッシングは頻繁に要求されるPDFデータをメモリに保存することで、処理時間やサーバー負荷を軽減します。IronPDFのようなライブラリと統合することで、PDFの作成や操作をより迅速に行うことができ、アプリケーション全体の速度と応答性を向上させます。 ASP.NET Coreアプリケーションでメモリ内キャッシングをどのように実装しますか? ASP.NET Coreでは、`ConfigureServices`メソッド内で`services.AddMemoryCache()`を追加することでメモリ内キャッシングを実装できます。これは、効率的なPDF処理およびデータ取得のためにIronPDFとシームレスに統合されます。 キャッシングにおけるIMemoryCacheの役割は何ですか? IMemoryCacheは、.NETアプリケーションにおけるキャッシュエントリを効果的に管理するためのインターフェイスです。IronPDFと組み合わせることで、開発者はPDFデータを迅速に保存および取得することができ、アプリケーションのパフォーマンスを向上させます。 キャッシングの一般的な構成オプションは.NETで何ですか? 一般的な構成オプションには、`MemoryCacheEntryOptions`を使用した有効期限ポリシー、サイズ制限、エビクション戦略の設定が含まれます。これらの構成は、PDF処理のためにIronPDFを使用する際にキャッシングプロセスを最適化します。 開発者は.NETアプリケーションで動的PDFをどのように作成できますか? 開発者はIronPDFを使用して.NETアプリケーションで動的PDFを作成できます。HTMLからPDFへの変換、ヘッダーやフッターの追加などをサポートしており、PDFの生成と操作において多目的なツールとなります。 キャッシングを.NETでのPDF生成と統合することの利点は何ですか? IronPDFを使用した.NETアプリケーションでのPDF生成にキャッシングを統合すると、速度が大幅に向上し、待ち時間が短縮されます。これにより、頻繁に使用されるデータへのアクセスが速くなり、ユーザーエクスペリエンスが向上し、アプリケーションがよりスケーラブルになります。 どのようにして.NETアプリケーションのキャッシングシステムを監視し、強化することができますか? パフォーマンスカウンターを実装することで、.NETアプリケーション内のキャッシングシステムの効率を監視できます。この監視により、調整や強化が可能になり、特にPDFタスクにIronPDFを使用する際に最適なパフォーマンスが確保されます。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む 更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む OpenAPI .NET(開発者向けの動作方法)Ocelot .NET(開発者向けの動...
更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む
更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む