Как настроить форматы полученных дат (локальных или UTC) из wsdl-прокси .NET SOAP - PullRequest
0 голосов
/ 19 сентября 2019

Я использую сервис SOAP, используя сгенерированный прокси-класс Visual Studio и предоставленный файл WSDL.

Когда я получаю данные SOAP, запущенные с моего локального компьютера, полученные значения Birthdates (DateTime)имеют значение DateTimeKind.Local и показывают, например, это значение: 2009-10-01 00: 00 .Это день рождения первого октября.

Однако, когда я получаю эти данные из процесса Hangfire (фоновый) в службах приложений Azure, извлекаемые даты рождения по-прежнему DateTimeKind.Local , нозатем 2009-09-30 22: 00

Я написал обходной путь для этого:

public TimeZoneInfo TimeZoneWest = 
     TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");

bool convertFromUtc = System.TimeZoneInfo.Local.Equals(System.TimeZoneInfo.Utc);

DateTime birthDate = person.birthdate;
if (convertFromUtc)
{
    DateTime birthDateInUtc = DateTime.SpecifyKind(birthDate, DateTimeKind.Utc);
    birthDate = TimeZoneInfo.ConvertTimeFromUtc(birthDateInUtc, TimeZoneWest);
}

Есть ли способ, которым я могу (повторно) создать этот проксии / или настроить этот прокси-сервер службы SOAP, чтобы он всегда преобразовывался в UTC (или даже просто оставлял даты нетронутыми)?Затем я могу удалить этот обходной путь и перейти по соглашению или конфигурации.

Подробности:

  • .NET Core 2.1, работающий в VS2019, и службы приложений Azure
  • Возврат веб-службыданные от голландцев (часовой пояс Западной Европы)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...