C# 中的汇编参考

PHPz
发布: 2024-09-03 15:19:53
原创
1099 人浏览过

在 C# 中,我们有参考程序集,它包含表示 API 表面所需的最少量的元数据。因此,参考程序集包括所有有用成员的声明,但它们将排除所有私有 me 实现和声明,这些实现和声明不会对 APsurface 产生任何影响,因为它基本上提供了表示 APsurface 契约的元数据。所以我们这里有两种类型的程序集,一种是实现,另一种是引用程序集,但是我们不能使用引用程序集来加载执行,并且这些类型的程序集基本上是与代表软件开发工具包的SDK一起分发的。图书馆或平台。

C# 中汇编引用的语法

我们知道,它是一种将我们的代码组装成Assembly的机制;为此,我们没有特定的语法,但我们可以按照一些步骤在 C# 中定义汇编。为此,我们可以使用引用管理器对话框来管理和添加对组件的引用。但如果我们想添加对自定义组件的引用,则必须手动完成。

引用代码需要遵循的步骤:

  • 首先,我们必须为每个程序集创建一个单独的文件夹;然后,我们可以将脚本移动到属于相关文件夹的文件夹中。
  • 然后我们让Unity负责获取所有包含程序集定义的脚本;之后,它将编译它们并使用资产定义添加必要的信息。
  • Unity 将为我们编译所有程序集并识别它们的依赖关系。所以它减少了我们的工作。

这些是在 C# 中使用参考程序集时需要牢记的一些要点;它更多地由我们的工具管理。

汇编参考在 C# 中如何工作?

正如我们所知,引用 Assembly 通过提供有关 API 的元数据来表示 API 表面。所以我们了解了参考程序集和实现程序集,但在这里我们将了解它在参考程序集上的工作原理及其使用目的。

1.通过使用引用程序集,我们可以轻松地指向库的引用,而无需该版本的完整实现。简而言之,它使开发人员能够引用该特定库的特定版本。

2.让我们通过一个简单的例子来理解,假设我们拥有机器中特定库的最新版本。但是在当前的程序中,我们想要使用低于我们拥有的最新版本的特定版本,因此在这种情况下,我们可以使用引用程序集,它将指向该库的先前版本,但我们可以也得到编译时错误。

现在让我们看一下 C# 中参考程序集的结构:

参考程序集也称为纯元数据程序集;它们包括除私有和匿名类型之外的所有成员。此外,他们的方法体被替换为 throw null;使用它的原因是为了验证并运行,通过。我们已经知道它从元数据中删除了私有 mems,这对于引用 API 表面非常有用。

它存储的代表API的元数据信息如下:

  • 它包含结构体的所有字段。
  • 它还包括所有虚拟方法。
  • 它还包括所有类型、嵌套类型和私有类型。
  • 它还包括有关已实现的属性和事件的元数据,因为它们的访问器是虚拟的(如果我们可以看到的话)。
  • 此外,它还包括有关属性的详细信息。

现在我们可以看到如何使用一些工具或 IDS 生成参考程序集。

我们生成参考库,因为我们可能有不同的场景,该库的使用者希望对特定程序使用某些不同的版本,因此参考程序集帮助我们实现程序的这种处理,因为它们的大小非常小,而且它们仅作为软件开发工具包的一部分进行分发,这也有助于我们减少下载大小并帮助我们节省磁盘空间。

通过使用以下几点,我们可以生成 C# 中的参考程序集:

  • 我们可以利用ProduceReferenceAssembly来生成参考程序集。
  • 我们可以利用 EmitMetadataOnly 和 IncludePrivateMembers 属性来设置值并为其启用元数据。他们接受布尔值 true 或 false。在这种情况下,要生成参考程序集,我们必须分别将它们设置为 True 和 False。
  • 在C#中,当我们尝试使用命令行编译程序来生成引用程序集时,我们可以使用-refonly,否则我们可以使用-refout作为编译器选项,这样它将生成引用程序集为了我们。

我们可以按照以下步骤添加此内容:

1.转到 Visual Studio 并选择您的项目根目录。

C# 中的汇编参考

2.参考选项卡,您将在屏幕上看到以下对话框,选择您要添加的依赖项并单击确定。

C# 中的汇编参考

结论

通过使用参考库,我们可以处理最新版本和先前版本或特定库,而无需它们加载填充实现。这可以在几个方面帮助我们,比如节省磁盘空间,提高性能等等。此外,通过设置一些变量值并通过命令行传递参数,它很容易使用和构建。

以上是C# 中的汇编参考的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!