C# 反射:发出日期时间属性值

本文关键字:时间 属性 日期 反射 | 更新日期: 2023-09-27 18:35:43

我目前正在使用Reflection.Emit生成动态类型。

我有我需要的大部分工作,但是需要在构造函数中设置默认属性值。

到目前为止,我已经通过例如使用(为简洁起见而减少)来为整数和字符串工作:

ctorDefaultIL.Emit(OpCodes.Ldstr, "Hello World");

ctorDefaultIL.Emit(OpCodes.Ldc_I4, 42);

这非常有效,我的问题是我将如何设置日期时间值。

C# 反射:发出日期时间属性值

感谢@leppie未来的参考,这是我最终使用的代码。对于某些上下文,这被传递到另一个方法中:

ctorDefaultIL.Emit(OpCodes.Ldc_I8, dateVal.Ticks);
ctorDefaultIL.Emit(OpCodes.Newobj, 
  typeof(DateTime).GetConstructor(new[] { typeof(long) }));