let_property方法的好奇心
每个 .net 开发人员都知道属性的概念。大约 99.99%,它只是将两个方法(一个 getter 和一个 setter)粘合在一起的元数据。 对于事件及其添加、删除和…
为什么在调用 MSIL 中的字段之前必须执行 ldarg.0?
我想调用一个函数,以 string 和 Int32 作为参数。 string 只是一个文字,Int32 应该是一个field。所以我认为它应该是这样的: .method public hideby…
C# 编译器 +带拳击的通用代码 +限制条件
让我们检查一下为以下泛型方法生成的 MSIL 代码: public static U BoxValue(T value) where T : struct, U where U : class { return value; } 看: …
.NET DynamicMethod 线程安全吗?
如果我使用 ILGenerator 编写 DynamicMethod 并且输出的代码是线程安全的,那么生成的委托是否是线程安全的? 我担心的是 IL 在该方法第一次运行时被…
将 .NET 表达式树链接到新程序集中
我正在尝试编写我自己的玩具 My Toy Language -> MSIL 编译器,以便更好地了解编译器的工作原理。我的解析和词法分析工作正常,我已经构建了表达式树…
CIL 中的字符串生成器 (MSIL)
我正在尝试生成采用 StringBuilder 的代码,并将类中所有属性的值写入字符串。我有以下内容,但我目前在以下代码中收到“无效的方法令牌”: public s…
ECMA CIL/Microsoft MSIL 规范是否发生过重大变化?
.NET 通用中间语言的 ECMA 标准更新了三遍。我无法找到可以明确版本之间更改的版本历史记录。这四个之间是否有任何实质性差异,例如新的操作码等? 另…
部分反汇编.net可执行文件
我需要编写一个相对较小的程序来解析 .net 可执行文件并生成对外部方法的调用列表。例如,如果在文件内调用 System.Console.WriteLine ,该工具应打印…
PEVerify 警告参数乱序
我使用 Reflection.Emit 构建了一个程序集。运行 PEVerify 返回 214 个相同类型的警告: [MD]: Warning: Parameter out of sequence (parameter: 1; s…
将 lambda 作为 IL 流传递到辅助 AppDomain 并使用 DynamicMethod 将其组装回来
是否可以将 lambda 表达式作为 IL 字节流传递到辅助 AppDomain,然后使用 DynamicMethod 将其组装回那里,以便可以调用它? 我不太确定这首先是正确的…
OnExit 未通过 asp.net 项目中的 PostSharp 进入
我已经设置了 PostSharp,它似乎正在工作,但我没有让它进入 OnExit(我已记录设置以确保它正在工作)... 使用 asp.net 配置有点棘手 - 或者只是我。 …