在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在管理静态 void 主程序内部的窗体类、方法和属性的可见性时,访问修饰符在基于组件的 C# 开发编程语言中是必不可少的。在构建图形用户界面模块化和可维护性应用程序时,内部访问修饰符(internal)就是一个非常重要的访问修饰符。C# 国内 本文将讨论 IronPDF 的几个有用应用程序,IronPDF 是一个管理 PDF 文档的灵活 C# 框架。
1.创建一个 C# 项目。
2.了解内部访问修饰符。
3.将 "内部 "应用于成员。
4.在程序集层面组织代码
5.在同一程序集中使用内部成员
6.编译代码
C# 中的内部关键字/访问修饰符将类型或成员的可见性限制为同一程序集中其他成员的可见性。这意味着任何类,无论是派生类、方法还是标记为内部的属性,都可以被同一程序集内的其他类型访问,但对程序集外的类型则不可用。这种程度的访问控制对于封装来说是至关重要的,因为它可以让你指定只应在同一程序集内以私有方式使用的具体实现。
在 C# 中,您可以通过以下方式使用内部修饰符:
使用内部类声明一个仅在同一程序集内可用的类。
// Assembly1
internal class InternalClass
{
// Members of InternalClass
}
// Assembly1
internal class InternalClass
{
// Members of InternalClass
}
' Assembly1
Friend Class InternalClass
' Members of InternalClass
End Class
通过应用内部组件,将类成员(如字段、属性和方法)的可见性限制在同一程序集内。
// 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
通过使用内部访问修饰符,声明只能在同一程序集内访问的接口。
// 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
通过在装配层面应用内部装配,限制外部装配对整个装配的访问。
[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 中访问。
将受保护访问修饰符和内部访问修饰符结合起来,就会产生受保护的内部访问修饰符。一个成员 (方法、属性或字段) 或一种 (类、接口或委托) 由于使用了受保护的内部复合访问修饰符,派生类型既可以在其程序集内部也可以在其程序集外部进行访问。受保护的内部访问级别提供了受保护访问级别和内部访问级别分别提供的可见性之间的平衡。
使用 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
在本例中,程序集 A 的 PdfProcessor 类使用 IronPDF 封装 PDF 处理代码。由于这些方法被指定为内部方法,因此只有同一程序集的内部成员才能访问它们。程序集 B 的 MainClass 可以轻松使用这些内部函数。要了解有关 IronPDF 代码的更多信息,请参阅 这里.
最后,C# 内部修改器对程序集内部哪些类型和成员可见提供了强有力的控制。当与 IronPDF 结合使用时,它有助于创建安全、模块化和可维护的应用程序。您可以将 IronPDF 相关代码封装在内部类或方法中,从而在抽象性、安全性和可用性之间取得折中。在使用像 IronPDF 这样管理 PDF 文档处理等基本功能的库时,特别重要的是要接受封装和有限访问的概念,以便在 C# 应用程序中促进稳定和可扩展的架构。
IronPDF的"$liteLicense "轻量级捆绑包中包含了非常强大的许可证、重新设计选项和更长的编程支持时间。在带水印的测试期间,客户可以在实际应用设置中测试该项目。点击 链接 了解更多有关 IronPDF 的优势、审批流程和草案表格的信息。查看此页 网站 了解有关 Iron Software 的更多信息。