跳過到頁腳內容
.NET幫助

Flunt C#(對於開發者的運行原理)

在當前的軟體開發環境中,生成高品質的文件並保證數據完整性是至關重要的任務。 在這篇文章中,我們將探討如何結合強大的C#程式庫,Flunt C#和IronPDF以改善數據驗證和文件創建的工作流程。 開發者可以利用IronPDF的高級PDF生成功能和Flunt的強大驗證功能,構建各種軟體應用程式的有效和可靠的解決方案。

How to use Flunt in C#

  1. 創建一個新的C#控制台專案。
  2. 從NuGet安裝Flunt套件。
  3. 匯入命名空間並繼承類別。
  4. 將驗證添加到數據模型中。
  5. 執行驗證檢查並顯示結果。

Understanding of Flunt C#

Flunt是一個多功能且輕量的.NET框架,旨在促進C#應用程式中流暢驗證和通知模式的開發。 當開發者使用Flunt以流利且具表達性的方式構建驗證規則和業務邏輯時,代碼變得更易讀且易於維護。 使用Flunt的廣泛集成驗證技術和擴展功能,開發者可以輕鬆驗證複雜的數據結構,如對象和集合。

此外,由於Flunt可以輕鬆與當前代碼庫和框架集成,因此它是提高.NET程式庫應用程式可靠性和穩定性的有用工具。 總的來說,Flunt鼓勵使用一種聲明式的驗證和錯誤處理方式,使開發者能夠撰寫更乾淨、更穩健的代碼。

Features of Flunt C#

流暢介面:Flunt提供了一個易於閱讀且簡潔的介面,用於構建驗證規則,這簡化了複雜驗證邏輯的表達。

可鏈接驗證:可以通過自然地連接驗證規則來用少量代碼創建可鏈接的驗證場景。

集成的驗證器:Flunt帶有幾個內置驗證器,用於經常使用的數據類型,包括日期、整數、字串和集合。 流暢的語法允許輕鬆應用這些驗證器到屬性。

自定義驗證規則:通過擴展Flunt框架,開發者可以添加自定義驗證規則,允許根據特定域需求進行驗證邏輯。

通知系統:Flunt提供了一個通知系統,用於報告驗證問題和收集錯誤消息。 這使開發者能輕鬆地通知用戶或其他應用程式元件驗證失敗。

與框架的整合:Flunt可與包括Entity Framework和ASP.NET Core等知名框架和程式庫輕鬆連接,這使得將驗證邏輯添加到現有專案變得簡單。

可測試性: Flunt 通過在應用程式代碼和驗證邏輯之間提供明確的划分,支持測試驅動開發 (TDD),使單元測試驗證規則變得簡單。

開源與蓬勃發展的社區: Flunt由一群開發者積極維護,並且是開源的。 這保證了框架的持續維護、增強和支持。

Getting Started with Flunt C#

在C#專案中設置Flunt

通知和驗證命名空間是Flunt基本類別庫的一部分,應默認在您的C#專案中可訪問。 Flunt通过提供靈活介面來加速C#程序的驗證,以定義和應用驗證規則。 它對更清晰的代碼、增強的可讀性和全面的錯誤處理的支持使得驗證用戶輸入、域對象和API請求變得更容易。

在Windows控制台和Forms中實現Flunt

Flunt被許多C#應用程式類型所實施,包括Windows控制台、Web應用程式和Windows窗體(WinForms)。 雖然每個框架都有不同的實現,但基本概念是一致的。

Flunt C#(它如何為開發者工作):圖1 - 使用Visual Studio套件管理器搜尋Flunt並安裝它

Flunt C#範例

Flunt一旦安裝完畢,您可以使用以下代碼。 這是一個簡單的範例,展示您如何使用Flunt構建驗證規則:

using System;
using Flunt.Validations;

public class Program
{
    static void Main(string[] args)
    {
        var person = new Person { Name = "Jack", Age = -25 };
        var contract = new PersonContract(person);

        // Perform validation checks
        if (contract.IsValid)
        {
            Console.WriteLine("Person is valid!");
        }
        else
        {
            Console.WriteLine("Validation failed:");
            foreach (var notification in contract.Notifications)
            {
                Console.WriteLine($"- {notification.Key}: {notification.Message}");
            }
        }
    }
}

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class PersonContract : Contract<Person>
{
    public PersonContract(Person person)
    {
        // Ensure the correct format of the object
        Requires()
            .IsNotNull(person, nameof(person))
            .IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
            .IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
    }
}
using System;
using Flunt.Validations;

public class Program
{
    static void Main(string[] args)
    {
        var person = new Person { Name = "Jack", Age = -25 };
        var contract = new PersonContract(person);

        // Perform validation checks
        if (contract.IsValid)
        {
            Console.WriteLine("Person is valid!");
        }
        else
        {
            Console.WriteLine("Validation failed:");
            foreach (var notification in contract.Notifications)
            {
                Console.WriteLine($"- {notification.Key}: {notification.Message}");
            }
        }
    }
}

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class PersonContract : Contract<Person>
{
    public PersonContract(Person person)
    {
        // Ensure the correct format of the object
        Requires()
            .IsNotNull(person, nameof(person))
            .IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
            .IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
    }
}
$vbLabelText   $csharpLabel

Person 類別:表示具有 NameAge 屬性的實體。

PersonContract這個類來自於Flunt的基本概念 Contract<t>。 使用Person對象並提供驗證規則。 Requires提供了一種鏈式方法來定義多個驗證。 驗證由IsGreaterThan等方法執行。 每個驗證規則都有一個相關的自定義錯誤消息。

驗證:類似於Person對象的實例。 驗證結果由契約的IsValid屬性顯示。 根據驗證結果顯示成功或失敗的通知,以及特定的錯誤消息。

Flunt 操作

為了在C#應用程式中進行驗證和通知處理,Flunt提供了許多操作,例如:

創建驗證規則:使用流暢介面創建屬性如必填字段、數據類型、值範圍、最大長度和最小長度的驗證規則。

執行驗證:將對象與預定義規則進行驗證以確保數據完整性和遵循業務邏輯。

管理驗證錯誤:記錄驗證錯誤並將其作為警告記錄,並通過向用戶提供錯誤消息或記錄錯誤以進行故障排除給予恰當的響應。

自定義驗證邏輯:針對複雜的驗證情況或特定領域需求擴展Flunt以使用唯一的驗證規則。

與框架的集成: Flunt可以無縫集成到多個知名的.NET框架和程式庫中,包括Entity Framework、ASP.NET Core等,以增強現有應用程式的驗證能力。

將Flunt與IronPDF整合

通過將Flunt與IronPDF整合,開發者可以發揮這兩種技術的優勢,以加速C#應用程式中的業務邏輯驗證和文件創建。 開發者可以通過在使用Flunt驗證輸入數據後使用IronPDF創建PDF文件,讓應用程式更加可靠和使用者友好。

安裝 IronPDF

  • 啟動Visual Studio專案。
  • 選擇"工具">"NuGet套件管理器">"套件管理控制台"。
  • 在套件管理控制台中輸入此命令:
Install-Package IronPdf
  • 另外,您可以使用NuGet套件管理器來安裝IronPDF和其他必要的NuGet套件。
  • 在搜尋結果中探索並選擇IronPDF套件後,點擊"安裝"按鈕。 安裝和下載將由Visual Studio處理。

Flunt C# (How It Works For Developers): Figure 2 - Install IronPDF using the Manage NuGet Package for Solution by searching IronPdf in the search bar of NuGet Package Manager, then select the project and click on the Install button.

  • NuGet將處理您的專案所需的IronPDF套件及任何依賴項的安裝。
  • 安裝後,IronPDF可供您的專案使用。

透過 NuGet 網站安裝

要了解有關IronPDF的功能、相容性和其他下載選項的更多信息,請參閱其在NuGet網站上的NuGet套件詳細信息頁面

利用 DLL 進行安裝

或者,您可以利用IronPDF的DLL文件直接將其包含到您的專案中。 訪問以下IronPDF ZIP下載頁面以獲取包含DLL的ZIP文件。 一旦DLL被解壓縮,將其包含到您的專案中。

實現邏輯

讓我們創建一個使用IronPDF進行PDF創建和使用Flunt進行數據驗證的基本C#應用程式。 在這個範例中,我們將使用Flunt驗證註冊表單的用戶輸入,並使用IronPDF創建一份已驗證用戶數據摘要的PDF文件。

  1. Person類別: 定義一個具有姓名和年齡屬性的Person類別。 透過在構造函數中使用Flunt的流暢介面,我們將Person數據與預定義的驗證規則進行驗證。
  2. 生成Pdf: 定義一個名為RenderHtmlAsPdf的方法,接受一個User對象作為輸入。 該函數使用IronPDF的HtmlToPdf類別將用戶註冊摘要表示為HTML文本渲染成PDF文件。
  3. Main方法: 使用範例Person數據,我們在Main方法中構建User類別的實例。 接下來,我們使用Flunt的IsValid屬性來確定Person數據是否合法。 如果數據正確,我們將調用IronPdf方法來創建PDF文檔。 如果不正確,控制台上將顯示驗證問題。

通過將IronPDF與Flunt結合進行PDF生成和數據驗證,我們已經開發出一個快速的工作流程,用於在C#應用程式中評估用戶輸入和生成PDF文件。 此方法確保數據完整性,生成專業品質的文件,並促進編寫清晰、可讀和可維護的代碼。 要閱讀有關IronPDF功能的更多信息,請參閱說明文件頁面。 以下是示例代碼片段。

using IronPdf;
using System;
using System.Linq;
using System.Text;
using Flunt.Validations;

namespace ConsoleApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // StringBuilder for HTML content
            StringBuilder sb = new StringBuilder();
            var person = new Person { Name = "Jack", Age = -25 };
            var contract = new PersonContract(person);

            if (contract.IsValid)
            {
                Console.WriteLine("Person is valid!");
                sb.Append("<p>Person is valid!</p>");
            }
            else
            {
                sb.Append("<p>Validation failed: </p>");
                foreach (var notification in contract.Notifications)
                {
                    sb.Append($"- {notification.Key}: {notification.Message}<br>");
                }
            }

            var renderer = new HtmlToPdf();
            // Set HTML content for the page
            var pdfDocument = renderer.RenderHtmlAsPdf(sb.ToString());
            // Save the document
            pdfDocument.SaveAs("output.pdf");
            // Dispose the renderer object
            renderer.Dispose();
            // Display a message
            Console.WriteLine("Report generated successfully!");
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

    public class PersonContract : Contract<Person>
    {
        public PersonContract(Person person)
        {
            Requires()
                .IsNotNull(person, nameof(person))
                .IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
                .IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
        }
    }
}
using IronPdf;
using System;
using System.Linq;
using System.Text;
using Flunt.Validations;

namespace ConsoleApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // StringBuilder for HTML content
            StringBuilder sb = new StringBuilder();
            var person = new Person { Name = "Jack", Age = -25 };
            var contract = new PersonContract(person);

            if (contract.IsValid)
            {
                Console.WriteLine("Person is valid!");
                sb.Append("<p>Person is valid!</p>");
            }
            else
            {
                sb.Append("<p>Validation failed: </p>");
                foreach (var notification in contract.Notifications)
                {
                    sb.Append($"- {notification.Key}: {notification.Message}<br>");
                }
            }

            var renderer = new HtmlToPdf();
            // Set HTML content for the page
            var pdfDocument = renderer.RenderHtmlAsPdf(sb.ToString());
            // Save the document
            pdfDocument.SaveAs("output.pdf");
            // Dispose the renderer object
            renderer.Dispose();
            // Display a message
            Console.WriteLine("Report generated successfully!");
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

    public class PersonContract : Contract<Person>
    {
        public PersonContract(Person person)
        {
            Requires()
                .IsNotNull(person, nameof(person))
                .IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
                .IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
        }
    }
}
$vbLabelText   $csharpLabel

以下是以上代碼的執行輸出:

Flunt C# (它如何為開發者工作):圖3 - 利用上述代碼中使用的Flunt和IronPDF的示例輸出

結論

IronPDF和Flunt是兩個強大的C#函式庫,它們協同工作以簡化文件創建和數據驗證的工作流程。 借助IronPDF的高級PDF生成功能和Flunt的強大驗證能力,開發者可以構建針對各種應用程式的可靠、有效和高品質的解決方案。 無論是開發桌面應用、Web應用程式還是雲端解決方案,Flunt和IronPDF都為開發者提供了創建滿足用戶和利益相關者需求的高品質軟體所需的工具。

在$799 Lite套件中包括了一年的軟體支援、永久授權和函式庫升級。 IronPDF提供免費授權詳情以了解更多有關成本和授權需求的信息。 要了解有關Iron Software程式庫的更多信息,請訪問<Iron Software官方網站。

常見問題解答

Flunt C# 如何改善我應用程式中的驗證過程?

Flunt C# 通過提供流暢的介面來增強驗證過程,使開發人員能夠以可讀且易於維護的方式創建複雜的驗證規則。它支持可鏈接的驗證場景,並可以與 ASP.NET Core 和 Entity Framework 等框架無縫集成。

設置 Flunt C# 用於驗證的步驟是什麼?

要設置 Flunt C# 進行驗證,您需要創建一個新的 C# 項目,從 NuGet 安裝 Flunt 套件,導入必要的命名空間,並繼承基類來構建您的驗證規則和邏輯。

IronPDF 如何與 Flunt C# 結合以增強文件創建?

IronPDF 可以與 Flunt C# 一起使用來驗證輸入數據在生成 PDF 之前。這確保只有有效的數據被使用,提高生成文件的可靠性。在驗證之後,IronPDF 允許您以编程方式創建專業質量的 PDF 文檔。

使用 Flunt C# 進行測試驅動開發有什麼好處?

Flunt C# 通過實現驗證邏輯和應用程序代碼之間的明確分離支持測試驅動開發。這種分離使開發人員能夠輕鬆編寫和運行單元測試以驗證規則,從而確保應用程式的正確性和健壯性。

Flunt C# 能夠處理自定義驗證規則嗎?

是的,Flunt C# 允許開發人員定義自定義驗證規則以滿足特定的應用需求。這種靈活性有助於解決內建驗證器無法涵蓋的獨特驗證場景。

在 C# 項目中安裝 IronPDF 的過程是什麼?

要安裝 IronPDF,打開 Visual Studio 項目,導航到“工具” > “NuGet 套件管理員” > “套件管理器控制台”,並執行命令 Install-Package IronPDF。或者,您可以使用 NuGet 套件管理器為解決方案將 IronPDF 添加到項目中。

Flunt C# 中的通知系統發揮什麼作用?

Flunt C# 中的通知系統旨在捕獲和報告驗證錯誤。它允許開發人員收集錯誤消息和反饋,這些消息和反饋可以用於通知用戶或應用程式的其他組件有關驗證問題。

Flunt C# 適合用於開源項目嗎?

是的,Flunt C# 是開源的,由開發者社群維護。這使其成為開源項目的一個可靠選擇,提供持續的更新和支持。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me