C# 中的程序集类型2024 年 8 月 29 日 | 阅读 3 分钟 引言程序集是 C# 中的一个重要概念。它是一组代码文件,被编译成一个可执行文件或一个动态链接库 (DLL)。根据其位置和预期用途,程序集可以分为多种类别。本文将探讨 C# 中各种程序集的类型。 私有程序集仅供单个应用程序使用的程序集称为私有程序集。它通常位于应用程序的目录或该程序目录的子目录中。私有程序集不打算与其他应用程序共享。它们用于存储特定于应用程序的代码和资源。 在编译应用程序时创建私有程序集。编译应用程序时,应用程序使用的所有代码文件和资源都会被编译成一个单一的程序集。此程序集随后将位于应用程序的目录或应用程序目录的子目录中。 私有程序集易于部署和使用。它们不需要任何额外的安装或设置。当应用程序启动时,.NET 运行时会自动加载它们。 共享程序集供多个程序使用的程序集称为共享程序集。它通常位于全局程序集缓存 (GAC) 或公共目录中。多个应用程序可以共享共享程序集。它们用于存储供不同应用程序共享的资源和代码。 共享程序集使用强名称工具(sn.exe) 创建。使用强名称工具为程序集应用数字签名。数字签名确保程序集的真实性和未被篡改。 全局程序集缓存 (GAC) 存储共享程序集。共享程序集存储在GAC 中,它充当中央存储库。GAC 的位置位于 Windows 目录(C:\Windows\assembly) 中。使用 gacutil.exe 工具将共享程序集注册到GAC。 共享程序集需要特殊的配置和安装。它们不能简单地复制到应用程序的目录。需要使用gacutil.exe 工具将其注册到GAC。 辅助程序集用于存储区域性资源的程序集称为辅助程序集。它通常位于应用程序目录的子目录或共享程序集目录的子目录中。本地化资源,如字符串、图像和音频文件,都存储在辅助程序集中。 辅助程序集使用resgen.exe 工具创建。resgen.exe 工具用于从文本文件创建资源文件(.resx)。然后使用al.exe 工具将资源文件编译成辅助程序集。 辅助程序集的命名遵循特定的命名约定。辅助程序集的命名约定如下: 名称的<AssemblyName> 部分是辅助程序集所关联的主程序集的名称。.NET 运行时会在应用程序首次启动时自动加载辅助程序集。.NET 运行时会根据用户的区域设置自动选择合适的辅助程序集。 动态链接库 (DLL)动态链接库 (DLL) 是一种程序集,其中包含可供多个应用程序使用的代码。与共享程序集类似,DLL 的创建目的是供多个应用程序使用。但是,DLL 与共享程序集不同之处在于它们没有唯一的名称。 DLL 存储在应用程序的目录或应用程序目录的子目录中。通过简单地将 DLL 复制到应用程序的目录,就可以被多个应用程序使用。 DLL 使用与创建共享程序集相同的工具创建。但是,DLL 不需要强名称。它们可以进行数字签名,但这只是可选的。 结论程序集是 .NET 框架的重要组成部分,用于存储可供一个或多个应用程序使用的代码文件和资源。C# 中主要有四种类型的程序集:私有程序集、共享程序集、辅助程序集和动态链接库 (DLL)。每种类型的程序集都有其自身的目的和用途。 私有程序集用于存储仅单个应用程序所需的特定于应用程序的代码和资源。它们不需要任何额外的安装或配置,并且易于部署。当应用程序启动时,.NET 运行时会自动加载它们。 下一个主题Unity Container C# |
在 C# 编程中,管理统一资源标识符 (URI) 是一项常见任务。URI 中经常发现编码字符,尤其是在必须通过 Internet 发送数据时。.NET 框架提供了许多有效的工具来与 URI 交互,其中之一就是 `Uri.IsHexEncoding()` 方法...
阅读 4 分钟
Type.GetMembers() 函数是一种强大的反射技术,它允许开发者在运行时访问有关类型成员(字段、属性、方法、事件等)的信息。反射是 C# 的一个特性,允许我们在程序运行时观察和交互类型、程序集和对象的元数据。
阅读 4 分钟
在本文中,我们将讨论 C# 中的“HybridDictionary.Contains(Object)”方法,包括其语法、参数和示例。但在讨论“HybridDictionary.Contains(Object)”方法之前,我们必须了解 C# 中的 HybridDictionary 类。HybridDictionary 类是什么?当元素数量...
5 分钟阅读
在本文中,您将了解 C# 中的 Decimal.Floor() 方法及其语法、参数和示例。什么是 Decimal.Floor()?在 C# 中,Decimal.Floor() 方法是 Decimal 结构体的一部分,也是 System 命名空间的成员。此方法可用于截断...
阅读 4 分钟
在本文中,我们将讨论一个 C# 程序来演示 CanRead 属性的使用。但在讨论实现之前,我们必须了解 C# 中的 CanRead 属性。 “CanRead 属性”的介绍在编程中,尤其是在处理文件操作或流时,能力...
7 分钟阅读
简介:称为面向对象关系映射 (ORM) 的面向对象编程方法或技术可以更容易地将关系数据库和面向对象编程语言结合起来。使用面向对象的方法,开发人员可以由于 ORM 方法论而使用数据库。ORM 在包括 C# 在内的许多编程语言中使用。ORM...
7 分钟阅读
在 C# 中,构造函数是当对象创建时自动调用的类方法。这些构造函数用于使用某些值初始化对象。构造函数将与类同名,并且没有返回类型。有静态构造函数,...
阅读 4 分钟
简介:在 C# 中解析 JSON 是开发消耗 JSON 数据的应用程序的开发人员的一项常见任务。JSON 代表 JavaScript 对象表示法,是一种轻量级的数据表示更改格式,非常适合普通用户阅读和编写,并且易于机器解析和...
阅读 3 分钟
Queue.Enqueue() 方法用于将一个项目添加到 Queue 的末尾。Queue 是一种遵循先进先出(FIFO)原则的数据结构,该原则指出先插入的元素最先被取出。Enqueue() 函数属于...
5 分钟阅读
在本文中,我们将结合语法和示例讨论 C# 中的 Type.GetArrayRank()。Type.GetArrayRank() 方法是什么?C# 中的 Type.GetArrayRank() 函数是 System 命名空间中的一个反射方法。此函数是 Type 类的一部分,该类对于检查和使用...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India