标签: c# arrays cil reflection.emit
使用ILDasm对一些C#代码进行反向工程,我发现编译器使用System.Runtime.CompilerServices.RuntimeHelper.InitializeArray方法初始化包含多个基本类型常量值的数组。
System.Runtime.CompilerServices.RuntimeHelper.InitializeArray
看起来它为每个数组大小创建一个特殊的结构(以字节为单位),并用[StructLayout]属性标记它。这非常简单。但是有一个包含实际数据的类型的字段。如何根据Reflection.Emit创建这样的字段并用任意字节填充它?
[StructLayout]
Reflection.Emit
答案 0 :(得分:2)
我认为您使用ModuleBuilder.DefineInitializedData。