IRONSOFTWAREHOME
开发者更新

LazyCache C#(开发者用法)

Jacob Mellor,Team Iron 的首席技术官
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:

由于其直观的 API,使用 C# 中的 LazyCache 很简单。 以下是一个基本的示例,演示如何使用 LazyCache 缓存方法调用的结果:

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 是一个强大的 C# PDF 库,允许在 .NET 项目中生成、编辑和从 PDF 文档中提取内容。 以下是一些关键功能:

  1. HTML 转 PDF:

    • 将HTML、CSS和JavaScript内容转换为PDF格式。
    • 使用Chrome呈现引擎获得像素完美的PDF。
  • 从 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);
        }
    }
}

代码解释

  • 实例化 Renderer: 创建 ChromePdfRenderer 的实例以处理将 HTML 内容转换为 PDF 格式。

  • Define Content: HTML content ("

    Demo LazyCache and IronPDF

    ", "

    Create CachingService

    ", etc.) is prepared. 这些内容将渲染为 PDF 并缓存以供重用。

  • 创建缓存服务: 使用 LazyCache 的 CachingService 实例化缓存服务 (IAppCache)。 该延迟缓存服务管理缓存数据的存储和检索。

***缓存键:**分配一个唯一标识符("uniqueKey")来表示缓存的 PDF 内容。

  • 定义耗时方法: 定义生成可缓存数据的工厂方法 (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 应用程序、APIs 还是服务,LazyCache 都可以成为提升 C# 应用程序性能和可扩展性的重要工具。

另一方面,IronPDF 作为一个强大且多功能的 C# 库,能够处理 .NET 应用程序中的 PDF 文档。 它的强大功能涵盖创建、编辑、渲染 HTML 到 PDF、以及以编程方式操作 PDF。 通过支持加密和数字签名进行安全文档处理,IronPDF 能够帮助开发人员高效管理和定制 PDF 工作流程,使其成为 C# 开发中文档管理和生成任务的宝贵工具。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

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

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 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 起