C#反射:发出DateTime属性值

时间:2012-05-30 20:22:32

标签: c# datetime reflection.emit

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

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

到目前为止,我已经使用了Integers和Strings这样的工作(例如简化):

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

ctorDefaultIL.Emit(OpCodes.Ldc_I4, 42);

这很有效,我的问题是如何设置DateTime值。

1 个答案:

答案 0 :(得分:3)

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

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