IRONSOFTWAREHOME
開発者向けアップデート

LazyCache C#(開発者向けの仕組み)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

キャッシングは、よくアクセスされるデータをメモリやより高速なストレージ媒体に保存することでパフォーマンスを向上させる、ソフトウェア開発における基本的な技術です。 C#では、LazyCacheはスレッドセーフキャッシュ実装を簡素化するための人気のライブラリで、開発者が負荷の高いシナリオでキャッシングを効果的に利用できるようにします。

LazyCacheとは何ですか?

LazyCacheは、.NET/ASP.NET Coreアプリケーションのための基盤となるキャッシングプロバイダライブラリで、データをキャッシングするためのシンプルで直感的なAPIを提供します。 これはNuGetパッケージとして利用可能で、C#プロジェクトに簡単に統合できます。 LazyCacheの主な目的はキャッシング実装を簡素化し、ダブルロックキャッシュパターンを使用してキャッシュされた情報を管理するために必要な定型コードを減らすことです。

LazyCacheの主な機能:

  1. シンプルなAPI: LazyCacheは、キャッシュ項目を追加、取得、削除するためのわかりやすいAPIを提供します。 開発者は、複雑なキャッシングメカニズムを扱うことなく、アプリケーションやWebサービスコールに素早くキャッシングを統合できます。

  2. 自動有効期限: LazyCacheは、設定可能な期限ポリシーに基づいてキャッシュ項目の自動有効期限をサポートします。 開発者はキャッシュ項目の有効期限を指定でき、LazyCacheは期限切れになった項目をキャッシュデータから削除します。

  3. インメモリキャッシング: LazyCacheはデフォルトでキャッシュ項目をメモリ内に保存し、キャッシュデータへの高速アクセスが必要なシナリオに適しています。 インメモリキャッシングは、キャッシュデータアクセスの低遅延と高スループットを保証します。

  4. スレッドセーフ操作: LazyCacheは、キャッシュ項目の追加、取得、削除のためのスレッドセーフな操作を提供します。 これにより、複数のスレッドがデータの破損や不整合のリスクなしにキャッシュに同時にアクセスできることが保証されます。

  5. 拡張性: LazyCacheは拡張可能に設計されており、開発者が特定の要件に応じてキャッシングの動作をカスタマイズできるようにします。 カスタムキャッシング戦略を実装するためのフックを提供します。

C#でLazyCacheを使用する方法:

C#でLazyCacheを使用するのは、直感的なAPIのおかげで簡単です。 以下に、IdleCacheを使用してメソッド呼び出しの結果をキャッシュする方法の基本的な例を示します。

using LazyCache;

public class DataService
{
    // Define a private readonly field for the cache
    private readonly IAppCache _cache;

    // Constructor to initialize the cache
    public DataService(IAppCache cache)
    {
        _cache = cache;
    }

    // Method to retrieve data (cached or fetched)
    public string GetData()
    {
        return _cache.GetOrAdd("dataKey", () =>
        {
            // Simulate expensive operation such as database calls
            return FetchDataFromDatabase();
        });
    }

    // Simulate fetching data from a database
    private string FetchDataFromDatabase()
    {
        return "Cached Data";
    }
}

この例では、DataService クラスが LazyCache を使用して、GetData() メソッドの結果をキャッシュしています。 GetOrAdd() メソッドは、指定されたキー("dataKey")に関連付けられたキャッシュデータを取得します(存在する場合)。 データがキャッシュされていない場合、提供されたデリゲート FetchDataFromDatabase() が実行されてデータを取得し、その後の使用に備えてキャッシュされます。

IronPDFの紹介

LazyCache C#(開発者向けの動作原理):図1 - IronPDF

IronPDFは、.NETプロジェクト内でPDF文書からコンテンツを生成、編集、および抽出することができる強力なC# PDFライブラリです。 ここにいくつかの重要な特徴を示します:

  1. HTMLからPDFへの変換:

    • HTML、CSS、JavaScriptコンテンツをPDF形式に変換します。
    • ピクセル単位で正確なPDFを作成するためにChrome Rendering Engineを使用します。
    • URL、HTML ファイル、または HTML 文字列から PDF を生成します。

2.画像とコンテンツの変換:

  • 画像をPDFに変換したり、PDFから画像に変換したりできます。
  • 既存のPDFからテキストや画像を抽出します。
  • さまざまな画像フォーマットをサポートします。

3.編集と操作:

  • PDFのプロパティ、セキュリティ、および権限を設定します。
  • デジタル署名を追加します。
  • メタデータや履歴を編集。

4.クロスプラットフォームサポート:

  • .NET Core (8、7、6、5、および 3.1+)、.NET Standard (2.0+)、.NET Framework (4.6.2+) 対応。
  • Windows、Linux、および macOS 互換。
  • NuGet で簡単にインストール可能。

IronPDFとLazyCacheを使用してPDFドキュメントを生成する

はじめに、以下のように Visual Studio を使用してコンソールアプリケーションを作成します。

LazyCache C#(開発者向けの動作原理):図2 - コンソールアプリ

プロジェクト名を提供します。

LazyCache C#(開発者向けの動作原理):図3 - プロジェクト構成

.NETのバージョンを提供してください。

LazyCache C#(開発者向けの動作原理):図4 - ターゲットフレームワーク

IronPDFパッケージをインストールします。

LazyCache C#(開発者向けの動作原理):図5 - IronPDF

キャッシュされたメソッド呼び出しを追加するためにLazyCacheパッケージをインストールします。

LazyCache C#(開発者向けの動作原理):図6 - LazyCache

using LazyCache;
using IronPdf; // Add the IronPdf namespace
using System;

namespace CodeSample
{
    internal class LazyCacheDemo
    {
        public static void Execute()
        {
            // Instantiate the Chrome PDF Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo LazyCache and IronPDF</h1>";
            content += "<h2>Create CachingService</h2>";

            // Create the cache service using LazyCache
            IAppCache cache = new CachingService();

            var cacheKey = "uniqueKey"; // Unique key for caching the content

            // Define a factory method to generate the cacheable data
            Func<string> expensiveLongRunMethod = () =>
            {
                // Render the HTML content to a PDF
                var pdf = renderer.RenderHtmlAsPdf(content);
                
                // Export the rendered PDF to a file
                pdf.SaveAs("AwesomeLazyCacheAndIronPdf.pdf");
                
                // Return the content as a string
                return content;
            };

            // Get the cached value or execute expensiveLongRunMethod to cache it
            string cachedValue = cache.GetOrAdd(cacheKey, expensiveLongRunMethod);

            // Output the cached value to the console
            Console.WriteLine(cachedValue);
        }
    }
}

コードの説明

  • **レンダラのインスタンス化:**HTML コンテンツを PDF 形式に変換するために、ChromePdfRenderer のインスタンスが作成されます。

  • Define Content: HTML content ("

    Demo LazyCache and IronPDF

    ", "

    Create CachingService

    ", etc.) is prepared. このコンテンツはPDFとしてレンダリングされ、再利用のためにキャッシュされます。

  • **キャッシュサービスの作成:**キャッシュサービス (IAppCache) は LazyCache の CachingService を使用してインスタンス化されます。 このレイジーキャッシュサービスはキャッシュデータの保存と取得を管理します。

***キャッシュ キー:**キャッシュされた PDF コンテンツを表す一意の識別子 ("uniqueKey") が割り当てられます。

  • **高コストメソッドの定義:**キャッシュ可能データを生成するためのファクトリメソッド (expensiveLongRunMethod) が定義されています。 このメソッドは ChromePdfRenderer を呼び出し、HTML コンテンツを PDF としてレンダリングします。 生成されたPDFは保存され、文字列として返されます。

  • **キャッシュに取得または追加:**サービスの GetOrAdd メソッドが呼び出され、cacheKey に関連するキャッシュされた値を取得します。 キャッシュ内に値が存在しない場合、expensiveLongRunMethod を呼び出して値を計算し、キャッシュに保存して返します。 値がすでにキャッシュされている場合、それが直接返されます。

  • **出力:**キャッシュされた PDF コンテンツ(文字列として)がコンソールに表示され(Console.WriteLine(cachedValue))、キャッシュデータの取得が示されます。

出力

LazyCache C#(開発者向けの動作原理):図7 - コンソール出力

PDF

LazyCache C#(開発者向けの動作原理):図8 - PDF出力

IronPDFのライセンス(試用版あり)

IronPDFパッケージは、PDFを実行および生成するためにライセンスが必要です。 パッケージをアクセスする前に、アプリケーションの開始時に次のコードを追加します。

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";

試用ライセンスはIronPDFの試用版ライセンスページで入手可能です。

結論

LazyCacheは、キャッシュ項目の自動有効期限と直感的なAPIを提供することで、C#アプリケーションにおけるキャッシングの実装を簡素化します。 LazyCacheをプロジェクトに統合することで、よくアクセスされるデータを効率的にキャッシュしてパフォーマンスを向上させ、レイテンシーを削減し、リソースの利用を効率化することができます。 Webアプリケーション、API、またはサービスを構築する場合でも、LazyCacheはC#アプリケーションのパフォーマンスとスケーラビリティを向上させるための貴重なツールとなります。

一方で、IronPDFは.NETアプリケーション内でPDFドキュメントを操作するための強力で多機能なC#ライブラリとして際立っています。 その強力な機能は、PDFの作成、編集、HTMLをPDFにレンダリング、およびPDFのプログラムによる操作を網羅しています。 暗号化やデジタル署名による安全な文書処理の機能を備えたIronPDFは、PDFワークフローを効率的に管理・カスタマイズするための能力を開発者に提供し、C#開発における広範囲のドキュメント管理および生成タスクにとって価値あるツールとなっています。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から