gpt4 book ai didi

.net - 什么是 System.Reflection.Module?

转载 作者:行者123 更新时间:2023-12-04 10:24:29 25 4
gpt4 key购买 nike

刚注意到Assembly.LoadModule()在智能意义上。我看到它返回了对基本上未记录的 Module 的引用类(class)。

我非常了解反射,但我从未听说过模块?这些是什么?这个名字很诱人。

最佳答案

一个程序集可以由多个模块组成,甚至可以拆分为多个文件。

使用模块有两个主要用例:

  • 将用不同语言编写/由不同编译器编译的模块组合在一个程序集中
  • 通过拥有轻量级主模块并按需加载更多类型来优化应用程序的下载速度。

  • 模块在一定程度上是 .NET 团队认为用户能够通过网络将程序集下载到本地计算机以供执行的重要时期的产物。

    为了节省带宽,可以将程序集拆分为多个文件,每个文件都包含一个模块。包含主模块或主模块的程序集文件包含 assembly manifest列出所有其他程序集文件的位置。这允许开发人员确保快速初始下载主程序集,并且运行时根据需要从程序集中的其他模块加载类型或资源。

    如果您好奇,您实际上可以指示 C# 编译器吐出一个模块并使用程序集链接器手动编译它们。这是 tutorial on MSDN .

    今天的大多数程序集都是仅包含一个主模块的单模块程序集。除非您以编写处理反射(或原始 IL)的代码为生(我曾经做过一段时间),否则只要执行 assembly.MainModule 就可以了。需要时。我很确定使用 multil-file/multi-module 的人数是 ɛ​(仅略大于 0)。

    关于.net - 什么是 System.Reflection.Module?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30363703/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com