我正在使用Lokad共享库,而后者依赖于Mono.Cecil。
我对以下属性的含义有点困惑(它们与.NET内部结构有关,因此具有等效的.NET内部结构):
知道这些意思/做什么吗?
答案 0 :(得分:6)
我对Cecil并不太熟悉,但这些项目中的大部分都与IL文件有关。以下是一些答案 - 全部取自Serge Lidin的书:Expert .Net 2.0 IL Assembler。
包装尺寸=以字节为单位的对齐系数。必须设置为0或2的幂从1到128.(在类布局元数据表中)(p122)
Mvid =全局唯一标识符,在生成时分配给模块(或模块版本ID)。 (在模块元数据表中)(p105)
显式This =方法调用签名。第一个显式指定的参数是实例指针。 ILAsm的关键工作是明确的。 (P159)
CallingConvention =签名的第一个字节标识签名的类型,由于历史原因,签名的类型称为签名的调用约定。 (例如:默认,vararg,字段,localsig,属性,unmgd,hasthis,explicitthis)p158-159
GetSentinel =最有可能与sentinel修饰符有关,它表示为vararg方法调用提供的可选参数的开头。 (P152)
RVA =相对虚拟地址:项目加载到内存后的地址,从中减去图像文件的基地址 - 换句话说,图像文件中项目的偏移量加载到内存中。 (P42)
SemanticsAttribute - 很可能与MethodSemantics表有关,它将事件和属性与其关联方法连接起来,并提供有关关联类型的信息。语义可以是setter,getter,other(property)或addon,removeon或fire(event)p317
IsHideBySig - 该方法隐藏具有匹配签名和名称的父类的所有方法(而不是仅具有匹配的名称)。 P188