gpt4 book ai didi

.net - 这些属性在 Mono.Cecil 中意味着什么?

转载 作者:行者123 更新时间:2023-12-04 14:52:47 25 4
gpt4 key购买 nike

我正在使用 Lokad 共享库,而后者又依赖于 Mono.Cecil。

我有点困惑以下属性的含义(它们与 .NET 内部结构有关,因此具有等效的 .NET 内部结构):

  • PackingSize(它们与 TypeDefinition 中的类型有关)。
  • Mvid(在 ModuleDefinition 中)。
  • ExplicitThis(与我知道的 this 关键字有关,但在
    方法定义)。
  • 调用 session 。
  • GetSentinel(在 MethodReference 中返回 int 的方法)。
  • RVA。
  • 语义属性。
  • IsHideBySig。

  • 知道这些是什么意思/做什么吗?

    最佳答案

    我对 Cecil 不太熟悉,但是这些项目中的大多数都与 IL 文件有关。以下是一些答案 - 全部来自 Serge Lidin 的书:Expert .Net 2.0 IL Assembler。

  • 打包大小 = 对齐因子(以字节为单位)。必须设置为 0 或 1 到 128 的 2 的幂。(在类布局元数据表中)(p122)
  • Mvid = 全局唯一标识符,在生成模块时分配给模块(或模块版本 ID)。 (在模块元数据表中) (p105)
  • 显式 This = 方法调用签名。第一个明确指定的参数是实例指针。 ILAsm 键是显式的。 (p159)
  • CallingConvention = 签名的第一个字节标识签名的类型,由于历史原因,称为签名的调用约定。 (例如:默认、可变参数、字段、localsig、属性、unmgd、hasthis、explicitthis)p158-159
  • GetSentinel = 很可能与 sentinel 修饰符有关,它表示为可变参数方法调用提供的可选参数的开始。 (p152)
  • RVA = 相对虚拟地址:项目加载到内存后的地址,减去图像文件的基地址 - 换句话说,加载到内存中的图像文件中的项目的偏移量。 (p42)
  • SemanticsAttribute - 很可能与 MethodSemantics 表有关,该表将事件和属性与其关联的方法连接起来,并提供有关关联类型的信息。语义可以是 setter、getter、other(属性)或 addon、removeon 或 fire(事件)p317
  • IsHideBySig - 该方法隐藏具有匹配签名和名称的父类的所有方法(而不是仅具有匹配名称)。 p188
  • 关于.net - 这些属性在 Mono.Cecil 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2283062/

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