IRONSOFTWAREHOME
开发者更新

Refit C#(开发人员如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年6月20日

通过将 Refit 与 IronPDF 集成在 C# 中,两个强大库的最佳功能结合起来,生成极其有效的应用程序。 Refit 通过让开发人员设计具有 C# 特性的 API 接口、自动生成 HTTP 请求并保证类型安全的 API 访问,使使用 RESTful API 更加简单。 相反,IronPDF提供了用于处理PDF文件的丰富功能,包括合并和批注PDF以及将HTML内容转换为PDF。 这些库结合在一起,为数据呈现和检索提供了流畅的工作流程。 通过使用像Refit这样的工具从API中检索数据,以及使用IronPDF基于这些数据生成详细的高质量PDF报告,可以使数据驱动的应用程序开发更加高效和高产。

什么是Refit C#?

Refit是一个用于.NET的开源框架,采用声明性、类型安全的方法简化了发送HTTP请求到RESTful API的过程。通过指定API端点为带有特征的C#接口,Refit自动生成所需的HTTP客户端代码。 这大大减少了样板代码,并提高了代码的可读性。 通过在编译期间检测错误而不是执行期间来确保方法签名与API端点正确匹配。

此外,Refit轻松处理JSON序列化和反序列化,使开发人员能够与C#对象进行交互,而无需手动转换API响应。 通过在接口规范中直接定义HTTP方法、头信息和参数,特征使配置更简单。 由于API端点更新时需要修改客户端代码较少,因此代码变得更简单、更容易维护。

例如,Refit可以通过在接口中创建一个带有[Get("/users/{id}")]属性的方法来生成用户姓名所需的HTTP GET请求。 然后可以通过类型安全的方法调用进行此请求。 通过抽象管理HTTP客户端的困难,Refit为开发人员将API集成到.NET应用程序中提供了一种全面且更高效的解决方案。

Refit C#(开发人员如何使用):图1 - Refit:适用于.NET Core、Xamarin和.NET的自动类型安全REST库

Features of Refit C#

类型安全的API可用性

Refit在编译时检测错误,确保方法签名与API端点相匹配。 由端点不匹配或请求配置不当引起的运行时错误的可能性因这种类型安全而减少。

HTTP客户端声明

开发人员可以使用C#接口和特征来构建API端点,从而产生更简洁、更易维护的HTTP请求代码。 这种声明性方法抽象了每个客户端实现HTTP请求方法的复杂性。

自动序列化和反序列化

Refit自动处理C#对象到JSON数据的转换。 由于开发人员不再需要手动序列化请求主体或反序列化响应,数据处理变得更加简单。

基于特征的配置

特征用于定义HTTP方法(如GET、POST、PUT和DELETE)和参数。 由于包含了头信息、请求主体、内容、路径参数和查询参数,因此配置简单易懂。

异步编程支持

Refit使用基于任务的方法来处理异步HTTP请求,并且易于与.NET中的异步编程模型交互。

可调整的Web浏览器

开发人员可以通过更改超时数、默认头信息设置和日志记录、身份验证和重试策略的消息处理程序配置来自定义核心HTTP客户端。

集成错误管理

Refit内置了处理HTTP问题的功能,使开发人员能够轻松集成自己的自定义错误处理逻辑。

适应性

由于支持自定义序列化和反序列化转换器,开发人员可以利用多种格式或处理不常见的数据类型。

结合依赖注入集成

Refit很适合现代.NET应用程序,因为它易于集成到支持推荐的依赖注入(DI)实践的DI应用程序中。

验证支持

Refit通过简单地配置身份验证头和接口方法(一如承载令牌和基本身份验证)来保护API调用。

Create and Config Refit C#

以下步骤可用于在C#中构建和设置Refit客户端:

创建一个新的Visual Studio项目

使用Visual Studio轻松创建控制台项目。 要在Visual Studio中创建控制台应用程序,请按照这些步骤操作:

在使用Visual Studio之前,请确认已在您的计算机上安装。

启动新项目

打开Visual Studio,点击"创建新项目"选项。

Refit C#(开发人员如何使用):图2 - 在Visual Studio中,点击

从"创建新项目"框左侧的选择中,选择您喜欢的编程语言(例如C#)。

从接下来的项目模板参考列表中,您可以选择"控制台应用程序"或"控制台应用程序(.NET Core)"模板。

为您的项目命名,并选择项目的存储位置。

Refit C#(开发人员如何工作):图3 - 通过指定项目名称、位置和解决方案名来配置您的控制台应用程序。 然后点击下一步。

选择合适的.NET Framework。 然后点击"创建"以创建控制台应用程序项目。

Refit C#(开发人员如何工作):图4 - 选择.NET Framework,然后点击"创建"。 您的控制台应用程序项目将成功创建。

安装Refit

首先需要将Refit库包含到您的项目中。 您可以使用NuGet包管理器安装Refit NuGet包,或者使用Visual Studio中的.NET CLI来完成此操作。

使用.NET CLI进行安装:

dotnet add package Refit
SHELL

定义API接口

创建一个接口来表示您的API。 使用Refit特征来定义HTTP方法和端点。

using Refit;
using System.Threading.Tasks;

// Define the API interface
public interface IMyApi
{
    // Get user details by ID
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);
    
    // Create a new user
    [Post("/users")]
    Task<User> CreateUserAsync([Body] User user);
}

// Define the User class
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    // Other properties...
}

创建和配置Refit客户端

启动Refit客户端并根据需要调整其设置。 这可以直接在主代码中或应用程序中的其他位置的服务中实现。

using Refit;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");

        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}

高级配置

通过设置基础HttpClient,您可以进一步个性化Refit客户端。 例如,您可以设置超时,应用头信息属性,添加默认头,或使用消息处理程序实现重试策略、身份验证和日志记录。

using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Configure HttpClient with custom handler and timeout
        var httpClient = new HttpClient(new HttpClientHandler
        {
            // Customize the HttpClientHandler as needed
        })
        {
            BaseAddress = new Uri("https://api.example.com"),
            Timeout = TimeSpan.FromSeconds(30)
        };

        // Add default headers if needed
        httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");

        // Create the Refit API client
        var apiClient = RestService.For<IMyApi>(httpClient);

        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}

通过创建和配置Refit客户端可以在C#中使用类型安全且易维护的RESTful API消费,遵循这些指示。

Refit C#(开发人员如何使用):图5 - 控制台输出

开始

在C#项目中集成Refit和IronPDF的第一步是安装这两个库,配置一个简单的API客户端使用Refit检索数据,并使用IronPDF基于该数据创建PDF。 下面是实现这个过程的步骤:

什么是 IronPDF?

一个用于在.NET应用程序中处理PDF文档的功能丰富的库被称为IronPDF。 借助其广泛的功能集,用户可以从头开始创建PDF或从HTML材料创建,还可以通过添加、删除或更改部分来更改现有的PDF文档。 IronPDF为开发人员提供了一个强大的API来创建、修改和转换PDF文件,从而简化了在.NET应用程序中处理PDF的工作。

IronPDF在HTML到PDF转换方面表现出色,确保精确保留原始布局和样式。 它非常适合从基于Web的内容中创建PDF,如报告、发票和文档。 利用对HTML文件、URL和原始HTML字符串的支持,IronPDF轻松生成高质量的PDF文档。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Refit C#(开发人员如何使用):图6 - IronPDF for .NET:C# PDF库

IronPDF 的主要功能

将 HTML 转换为 PDF

IronPDF允许您使用HTML内容(包括CSS和JavaScript)创建高质量的PDF文档。 此功能对于从动态内容或网页中创建PDF时非常有用。

编辑和操作PDF

IronPDF为现有的PDF文件提供修改工具。可以从PDF中提取页面,添加文本、图像、水印或注释,并将多个PDF合并为一个文档。

从头创建PDF

使用IronPDF的API,您可以以编程方式向新PDF文档添加文本、图像、形状和其他对象。 这使得能够动态生成PDF发票、报告和其他基于文档的输出。

PDF的安全性

通过使用IronPDF加密PDF文件并添加密码保护,您可以管理访问并保护关键数据。

PDF表单

通过将数据填入表单字段,用户可以通过使用IronPDF创建和填写PDF表单与PDF文档进行交互。

文本提取

IronPDF通过从PDF文档中提取文本内容,提升了文本数据的搜索、分析和操作的简便性。

转换为图像格式

IronPDF因适用于需要图像而非PDF的情况,可以将PDF文件转换为多种常见图像格式,包括PNG、JPEG和BMP。

安装IronPDF

使用.NET CLI或NuGet包管理工具将IronPDF添加到您的.NET项目中。

> dotnet add package IronPdf

Integrate IronPDF With Refit C#

让我们剖析一个C#代码示例,该示例结合Refit和IronPDF。 在这个例子中,我们将使用Refit从一个虚构的RESTful API检索数据,并使用IronPDF创建基于该数据的PDF文档。 以下代码的工作原理是:

using System;
using System.Threading.Tasks;
using IronPdf;
using Refit;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");

        try
        {
            // Use the API client to make requests
            var user = await apiClient.GetUserAsync(1);
            
            // Generate PDF with the retrieved user data
            GeneratePdf(user);
            Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

            // Create a new user
            var rand = new Random();
            var newUser = new User { Id = rand.Next(), Name = "John Doe" };
            var createdUser = await apiClient.CreateUserAsync(newUser);
            Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }

    // Generate a PDF from user data
    public static void GeneratePdf(User user)
    {
        // Construct HTML content for the PDF
        var htmlContent = $@"
        <html>
            <head>
                <style>
                    body {{font-family: Arial, sans-serif;}}
                    h1 {{color: navy;}}
                    p {{font-size: 14px;}}
                </style>
            </head>
            <body>
                <h1>User Details</h1>
                <p><strong>ID:</strong> {user.Id}</p>
                <p><strong>Name:</strong> {user.Name}</p>
            </body>
        </html>";

        // Create an IronPDF ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF to a file
        var filePath = "UserDetails.pdf";
        pdfDocument.SaveAs(filePath);
        Console.WriteLine($"PDF generated and saved to {filePath}");
    }
}
C#

使用Refit特征,我们构建一个称为IMyApi的API接口,并提供用于获取用户数据的端点。 我们为API构建一个Refit客户端,并在Main函数中异步检索用户数据。 如果成功检索到数据,则将用户对象传递给GeneratePdf方法。 使用IronPDF的ChromePdfRenderer类,我们在GeneratePdf方法中创建HTML内容转换为PDF文本来表示用户详细信息,然后将其输出为PDF文档。 然后,将创建的PDF存储在磁盘文件中。

Refit C#(开发人员如何使用):图7 - 控制台输出

下面是生成的PDF文件的截图。

Refit C#(开发人员如何使用):图8 - 使用IronPDF生成的输出PDF

结论

总之,与Refit和IronPDF的结合,为开发者在C#中处理RESTful API和PDF生成提供了强大高效的解决方案。 Refit接口减少了样板代码,提高了可维护性,并提供了一种类型安全、声明性的方式来简化API消费。然而,IronPDF提供了一整套丰富的工具来生产、修改和操作PDF文档,使得从HTML文本生成高质量的PDF变得简单。

通过整合这两个工具,开发者可以轻松从API中检索数据,并使用IronPDF基于这些数据生成动态PDF文档。 这种整合使工作流程更加流畅,并带来了开发动态的数据驱动PDF报告、发票和其他文档输出的大量机会。

您可以将IronPDF和其他Iron Software Technologies集成到您的企业应用程序开发堆栈中,为客户和终端用户提供功能丰富、高端的软件解决方案。 这个坚实的基础还将使项目、后端系统和过程的增强变得更容易。

开发人员可以充分利用IronPDF的免费试用费用为$999。 这些技术由于其全面的文档、活跃的在线开发者社区和定期更新,是现代软件开发项目的绝佳选择。

要了解更多关于如何开始使用IronPDF的信息,请访问HTML到PDF的代码示例和全面的文档。

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 起