C# Reflection+Dynamic+Struct 踩坑记录

通过反射Activator.CreateInstance创建的struct实例赋值给dynamic变量,此时该dynamic变量不为object,未发生装箱。

尝试通过反射获取Property,然后SetValue进行赋值无效,原因应该是在调用SetValue时发生装箱。

尝试使用IlGenerator进行操作,有安全性异常,放弃。

尝试使用Expression构建表达式树,直接将该dynamic变量以ref传入,赋值无效。最终将该变量以普通方式传入,并作为返回值返回,赋值给原变量,成功。

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据