这是我当前的代码:
[NonEvent]
unsafe void InsertViaWriteEventCore(
int eventId,
DateTime startDateTime,
DateTime endDateTime)
{
const int eventDataCount = 2;
{
EventData* data = stackalloc EventData[eventDataCount];
data->DataPointer = (IntPtr)(&startDateTime);
data->Size = sizeof(DateTime);
data[1].DataPointer = (IntPtr)(&endDateTime);
data[1].Size = sizeof(DateTime);
WriteEventCore(eventId, eventDataCount, data);
}
}
但最后,在生成的事件中,如果我将 startDateTime 作为“8/30/2017 5:00:00 PM”提供给该方法,我会将“8/30/3617 5:00:00 PM”视为 startDateTime。它总是在一年中增加1600。
我尝试提供8 作为大小而不是 sizeof(DateTime) ,但我仍然得到相同的结果。如果我将日期更改为字符串并作为字符串传递给 writeeventcore,我会得到正确的日期值,如此处的示例所示。我在这里做错了什么?通过 WriteEventCore 传递 DateTime 的正确方法是什么?