在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在管理靜態 void main 程式中的表單類別、方法和屬性的可見性時,存取修飾符在 C# 組件式開發程式語言中至關重要。 在構建模組化且可維護的圖形用戶界面時,一個相當相關的存取修飾符是 internal。 C#的概念內部本文將討論此內容,以及IronPDF的幾個有用應用,一個靈活的C#框架用於管理PDF文件。
建立一個 C# 專案。
了解 internal 存取修飾符。
將「internal」應用於成員。
在組件層級組織程式碼。
在同一個組件內使用內部成員。
在 C# 中,internal 關鍵字/存取修飾符將類型或成員的可見性限制為同一組件內其他成員。 這意味著任何類別,無論是衍生類別、方法或屬性被標記為 internal 的,都可以被同一組件內的其他類型訪問,但對於組件外的類型則無法訪問。 這種程度的存取控制對於封裝是必不可少的,因為它允許您以私密的方式指定應僅在同一程序集內部使用的實施細節。
在 C# 中,您可以以下列方式使用 internal 修飾符:
使用 internal 宣告僅在相同組件內可用的類別。
// Assembly1
internal class InternalClass
{
// Members of InternalClass
}
// Assembly1
internal class InternalClass
{
// Members of InternalClass
}
' Assembly1
Friend Class InternalClass
' Members of InternalClass
End Class
通過應用 internal 將類成員的可見性限制在相同的程序集內,例如字段、屬性和方法。
// Assembly1
internal class MyClass
{
internal static int InternalField;
internal void InternalMethod() { }
}
// Assembly1
internal class MyClass
{
internal static int InternalField;
internal void InternalMethod() { }
}
' Assembly1
Friend Class [MyClass]
Friend Shared InternalField As Integer
Friend Sub InternalMethod()
End Sub
End Class
聲明一個只能在相同組件中訪問的介面,方法是使用 internal 訪問修飾符。
// Assembly1
internal interface IInternalInterface
{
// Interface members
}
// Assembly1
internal interface IInternalInterface
{
// Interface members
}
' Assembly1
Friend Interface IInternalInterface
' Interface members
End Interface
宣告只能在相同組件內部存取的巢狀類別,使用內部 (internal)。
// Assembly1
public class OuterClass
{
internal class InternalNestedClass
{
// Members of InternalNestedClass
}
}
// Assembly1
public class OuterClass
{
internal class InternalNestedClass
{
// Members of InternalNestedClass
}
}
' Assembly1
Public Class OuterClass
Friend Class InternalNestedClass
' Members of InternalNestedClass
End Class
End Class
透過在程序集級別應用internal來限制外部程序集對整個程序集的訪問。
[assembly: InternalsVisibleTo("ExternalAssembly")]
[assembly: InternalsVisibleTo("ExternalAssembly")]
<Assembly: InternalsVisibleTo("ExternalAssembly")>
在開發和測試期間,可以使用 InternalsVisibleTo
屬性使內部的存取修飾符對指定的外部組件可見。
public class MyClassA
{
internal void MyInternalMethod()
{
// Implementation details only accessible within Assembly A
}
}
// Assembly B
public class MyClassB
{
void SomeMethod()
{
MyClassA myObject = new MyClassA();
myObject.MyInternalMethod(); // This will result in a compilation error
}
}
public class MyClassA
{
internal void MyInternalMethod()
{
// Implementation details only accessible within Assembly A
}
}
// Assembly B
public class MyClassB
{
void SomeMethod()
{
MyClassA myObject = new MyClassA();
myObject.MyInternalMethod(); // This will result in a compilation error
}
}
Public Class MyClassA
Friend Sub MyInternalMethod()
' Implementation details only accessible within Assembly A
End Sub
End Class
' Assembly B
Public Class MyClassB
Private Sub SomeMethod()
Dim myObject As New MyClassA()
myObject.MyInternalMethod() ' This will result in a compilation error
End Sub
End Class
由於在此範例中,MyInternalMethod
被指定為內部成員,因此只能在組件 A 內部被訪問。 如果您嘗試從 Assembly B 存取此功能,將會發生編譯錯誤。
組合 protected 和 internal 存取修飾符會產生 protected internal 存取修飾符。 成員(方法、屬性或欄位)或一種類型(類別、介面或委派)由於有受保護的內部複合存取修飾符,派生類型可以在其組件內外皆可存取。 受保護的內部存取等級提供了受保護和內部存取等級分別給予的可視性之間的平衡。
使用 C# 程式語言,IronPDF 官方網站是一個 .NET 函式庫,使開發者能夠生成、編輯和修改 PDF 文件。 它提供一系列工具和功能,以多種方式與 PDF 文件互動,包括從 HTML 創建 PDF、將 HTML 轉換為 PDF、合併或拆分 PDF 文檔,以及向現有的 PDF 附加註釋、文字和照片。
獲取 IronPDF 庫; 這是未來補丁所需的。 在封裝管理器中輸入以下代碼來完成此操作:
Install-Package IronPdf
使用 NuGet 套件管理器搜尋套件「IronPDF」是另一個選擇。我們可以從這份與 IronPDF 相關的 NuGet 套件清單中選擇並下載所需的套件。
IronPDF 提供廣泛的功能,用於生成、修改和處理 PDF 文件。 可以通過將 PDF 處理代碼封裝在內部類別或方法中,將實現細節隱藏在程序集邊界之後。 如需了解更多關於 IronPDF 的資訊,請參閱IronPDF 文件檔案.
檢查以下情況:
// Assembly A (PDFHandlingLibrary)
internal class PdfProcessor
{
internal void AddWatermark(IronPdf.PdfDocument pdfDocument, string watermarkText)
{
// Implementation details for adding a watermark using IronPDF
}
internal IronPdf.PdfDocument MergePdfDocuments(IEnumerable<IronPdf.PdfDocument> pdfDocuments)
{
// Implementation details for merging PDF documents using IronPDF
return mergedPdfDocument;
}
}
// Assembly B (MainApplication)
public class MainClass
{
void ProcessPdfDocuments()
{
var Renderer = new IronPdf.HtmlToPdf();
var pdfProcessor = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");;
// Accessing internal methods within the same assembly is allowed
pdfProcessor.ApplyWatermark("<h4>Confidential</h4>")
IronPdf.PdfDocument mergedPdf = pdfProcessor.MergePdfDocuments(pdfDocumentList);
}
}
// Assembly A (PDFHandlingLibrary)
internal class PdfProcessor
{
internal void AddWatermark(IronPdf.PdfDocument pdfDocument, string watermarkText)
{
// Implementation details for adding a watermark using IronPDF
}
internal IronPdf.PdfDocument MergePdfDocuments(IEnumerable<IronPdf.PdfDocument> pdfDocuments)
{
// Implementation details for merging PDF documents using IronPDF
return mergedPdfDocument;
}
}
// Assembly B (MainApplication)
public class MainClass
{
void ProcessPdfDocuments()
{
var Renderer = new IronPdf.HtmlToPdf();
var pdfProcessor = Renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF</h1>");;
// Accessing internal methods within the same assembly is allowed
pdfProcessor.ApplyWatermark("<h4>Confidential</h4>")
IronPdf.PdfDocument mergedPdf = pdfProcessor.MergePdfDocuments(pdfDocumentList);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
在此示例中,程序集 A 的 PdfProcessor 類使用 IronPDF 封裝 PDF 處理代碼。 由於這些方法被指定為內部,因此只有同一個組件的內部成員可以存取它們。 組件B的MainClass可以輕鬆使用這些內部功能。 要了解有關IronPDF代碼的更多信息,請參閱IronPDF HTML 轉 PDF 範例.
最後,C# 的 internal 修飾符提供了對程序集內哪些類型和成員可見性的強大控制。 當與 IronPDF 結合使用時,它有助於創建安全、模塊化和可維護的應用程式。 您可以通過將與IronPDF相關的代碼封裝在內部類或方法中,在抽象、安全性和可用性之間取得平衡。 在使用像 IronPDF 這樣管理關鍵功能如 PDF 文檔處理的庫時,特別重要的是要採用封裝和有限訪問的概念,以促進 C# 應用程式中穩定且可擴展的架構。
IronPDF 的 $749 輕量包中包括非常穩定的許可證、重新設計選項以及更長的程式支援時間。 客戶可以在有浮水印的測試期間,在實際應用環境中測試該項目。 進一步了解IronPDF 授權了解優點、核准流程及草稿形式。 查看Iron Software 網站了解更多。