编程语言
首页 > 编程语言> > 使用Reflection模仿C#数组初始化程序行为

使用Reflection模仿C#数组初始化程序行为

作者:互联网

使用ILDasm对一些C#代码进行反向工程,我发现编译器使用System.Runtime.CompilerServices.RuntimeHelper.InitializeArraymethod来初始化包含基本类型的几个常量值的数组.

看起来它为每个数组大小创建一个特殊的结构,以字节为单位,并用[StructLayout]属性标记它.这非常简单.但是有一个包含实际数据的类型的字段.如何根据Reflection.Emit创建这样的字段并用任意字节填充它?

解决方法:

我认为你使用ModuleBuilder.DefineInitializedData.

标签:c,arrays,cil,reflection-emit
来源: https://codeday.me/bug/20190703/1370802.html