EWS 托管 API,为什么 Item.DateTimeSent.Millisecond 始终为零?

EWS Managed API, Why Item.DateTimeSent.Millisecond is always zero?

我正在尝试计算发送电子邮件和接收电子邮件所花费的时间。我在我的程序中使用 EWS,我设置了流式通知以在新邮件到达收件人邮箱时收到回电。

收到通知后,我将 Itemevent 与 ews 服务绑定,我检查了项目属性 DateTimeCreated、DateTimeSent,DateTimeReceived.All 这些属性属于 DateTime 对象。

我检查过 DateTimeSent 毫秒始终为 0,而 DateTimeCreated、DateTimeReceived 具有毫秒值。

我不明白为什么 DateTimeSent 毫秒每次都是 0。如果我想计算从发送到接收所花费的时间我应该怎么做。

DateTimeReceived - Datetimesent 是发送和接收消息的实际时间?

或者计算发送和接收消息所用时间的正确方法是什么?

实际测量 Timespan 怎么样?因此,例如显示总毫秒数,但您可以将其更改为适合

var result=((TimeSpan)(DateTimeReceived  - DateTimeSent )).TotalMilliseconds.ToString("#,##0.00") + "ms";

在 EWS Managed API 中,ExchangeService class 具有您需要在进行任何调用之前设置的精度 属性 请参阅 https://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.exchangeservice.datetimeprecision(v=exchg.80).aspx

将 DateTimePrecision 设置为毫秒

   ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
    service.Credentials = new WebCredentials(username, password);
    service.Url = new Uri(ConfigSettings.EmailConnectionUrl);
    service.DateTimePrecision = DateTimePrecision.Milliseconds;