Управляемый API EWS. Почему Item.DateTimeSent.Millisecond всегда равен нулю? - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь рассчитать время, необходимое для отправки сообщения электронной почты, и время, необходимое для получения сообщения электронной почты.я использую EWS в своей программе, я установил потоковое уведомление, чтобы получать обратный вызов, когда новое письмо достигает почтового ящика получателя.

после получения уведомления я связываю Itemevent со службой ews, я проверял свойства элемента DateTimeCreated, DateTimeSent,DateTimeReceived. Все эти свойства относятся к объекту DateTime.

Я проверил, что DateTimeSent milisecond всегда равно 0, тогда как DateTimeCreated, DateTimeReceived имеет значение в миллисекундах.

Я не мог понять, почему DateTimeSent миллисекунда всегда всегда равна 0.если я хочу указать время, затраченное на отправку, чтобы получить то, что я должен сделать.

DateTimeReceived - Datetimesent - это фактическое время, необходимое для отправки и получения сообщения?

или как правильно выбратьрассчитать время, необходимое для отправки и получения сообщения?

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

В управляемом API EWS класс ExchangeService имеет свойство точности, которое необходимо установить перед выполнением любых вызовов, см. https://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.exchangeservice.datetimeprecision(v=exchg.80).aspx

0 голосов
/ 08 января 2019

установить DateTimePrecision в миллисекундах

   ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
    service.Credentials = new WebCredentials(username, password);
    service.Url = new Uri(ConfigSettings.EmailConnectionUrl);
    service.DateTimePrecision = DateTimePrecision.Milliseconds;
0 голосов
/ 04 декабря 2018

как насчет измерения Timespan?так, например, показывает общее количество миллисекунд, но вы можете изменить это, чтобы удовлетворить

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