我正在设计一个后处理.NET程序集的系统,并为它在程序集中找到的每个ldstr
IL指令添加一个新的字符串字段。我将创建一个新类并向其添加字段,然后用ldstr
(或其他东西)替换ldfld
指令以在运行时访问该字段。
类可以包含的字段数是否有限制?我现在想的可能是成千上万的田地。
我正在使用Mono.Cecil进行IL工作。
答案 0 :(得分:3)
Field
元数据表中的Ids是3个字节(四个中的第一个字节用于标识表)。这意味着模块中最大可能的字段数(组件中通常只有一个模块)为16M。这是基于查看ECMA CIL规范和我自己的测试。