在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在靜態 void main 程式中管理表單類別、方法和屬性的可見性時,存取修飾符在 C# 元件基礎開發程式語言中至關重要。在構建圖形使用者介面模組化和可維護的應用程式時,其中一個非常相關的存取修飾符是 internal。C# 的理念 內部 本文將討論此內容,以及IronPDF的幾個有用應用,一個靈活的C#框架用於管理PDF文件。
建立一個 C# 專案。
了解內部存取修飾符。
將 '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 中存取。如果您嘗試從組件 B 存取此函數,將會發生編譯錯誤。
將受保護和內部存取修飾符組合在一起會產生受保護的內部存取修飾符。成員 (方法、屬性或欄位) 或一種類型 (類別、介面或委派) 由於有受保護的內部複合存取修飾詞,衍生類型可以在其程序集內部和外部進行訪問。受保護的內部存取級別提供受保護和內部存取級別所單獨提供的可見性之間的平衡。
使用 C# 程式語言, IronPDF 是一個.NET程式庫,讓開發人員能夠生成、編輯和修改PDF文件。它提供了一系列工具和功能,以多種方式與PDF文件互動,包括從HTML創建PDF、將HTML轉換為PDF、合併或分割PDF文件,以及向已有的PDF添加註釋、文字和照片。
獲取 IronPDF 庫;未來的補丁需要用到它。在套件管理器中輸入以下代碼以完成此操作:
Install-Package IronPdf
使用 NuGet 套件管理器搜尋套件 "IronPDF" 是另一個選擇。 我們可以從這個與 IronPDF 相關的所有 NuGet 套件列表中選擇並下載所需的套件。
IronPDF 提供了一系列廣泛的功能,用於生成、修改和處理 PDF 文檔。透過將 PDF 處理代碼封裝在內部類或方法中,可以將實現細節隱藏在程序集邊界後。若要了解更多關於 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);
}
}
' Assembly A (PDFHandlingLibrary)
Friend Class PdfProcessor
Friend Sub AddWatermark(ByVal pdfDocument As IronPdf.PdfDocument, ByVal watermarkText As String)
' Implementation details for adding a watermark using IronPDF
End Sub
Friend Function MergePdfDocuments(ByVal pdfDocuments As IEnumerable(Of IronPdf.PdfDocument)) As IronPdf.PdfDocument
' Implementation details for merging PDF documents using IronPDF
Return mergedPdfDocument
End Function
End Class
' Assembly B (MainApplication)
Public Class MainClass
Private Sub ProcessPdfDocuments()
Dim Renderer = New IronPdf.HtmlToPdf()
Dim 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)
End Sub
End Class
在此範例中,Assembly A 的 PdfProcessor 類別使用 IronPDF 來封裝 PDF 處理程式碼。由於方法被指定為內部,因此僅有相同程序集的內部成員可以訪問它們。Assembly B 的 MainClass 可以輕鬆地使用這些內部功能。想了解更多關於 IronPDF 的程式碼,請參考 這裡.
最後,C# 的 internal 修飾符提供了對組件內哪些類型和成員可見的強控制。當與 IronPDF 結合使用時,它有助於創建安全、模塊化和可維護的應用程序。通過將與 IronPDF 相關的代碼封裝在 internal 類或方法內,您可以在抽象、安全性和可用性之間達成妥協。當處理像 IronPDF 這樣管理 PDF 文檔處理等基本功能的庫時,尤其重要的是要採用封裝和有限訪問的概念,以促進 C# 應用程序中穩定且可擴展的架構。
IronPDF 的 $749 輕便組合包包括非常強大的許可證、重新設計選項和更長時間的程序設計支持。在帶水印的測試期間,客戶可以在真實應用環境中測試該產品。點擊 連結 了解更多有關IronPDF的好處、審批過程和草稿表單的信息。請查看這个 網站 了解有關 Iron Software 的更多資訊。