C# Property Binding Order
Я использую AC# Web API, и у меня есть один класс, как показано ниже, и он имеет определенные ниже свойства. Этот же класс был использован в моем информационном вызове Get/Post User. В основном, когда мы сохраняем значение в базе данных, мы сохраняем поле даты и времени в форме формата UTC, а когда мы извлекаем его из базы данных, мы представляем значение в форме определенного часового пояса пользователя.
public class UserInfo
{
private string _userHashId;
public string UserHashId
{
get
{
return _userHashId;
}
set
{
// This property has been set after set the value of "RegistrationDate"
_userHashId = value;
}
}
public string TimeZone { get; set; }
public string _registrationDate;
public string RegistrationDate
{
get
{
return _registrationDate;
}
set
{
_registrationDate = value;
if (string.IsNullOrWhiteSpace(TimeZone))
{
// When this property's set method called "UserHashId" value is not available
// and because of that TimeZone data is not available
TimeZone = Helper.FindTimeZoneByUserHashId(UserHashId);
}
// User Timezone to UTC Timezone
_registrationDateUTC = _registrationDate.ToUtcTimeZone(TimeZone);
}
}
public DateTime _registrationDateUTC;
public DateTime RegistrationDateUTC
{
get
{
return _registrationDateUTC;
}
set
{
_registrationDateUTC = value;
// UTC Timezone to User Timezone
_registrationDate = _registrationDateUTC.ToUserTimezone(TimeZone);
}
}
}
В вызове Get API информация о пользователе отображается правильно с правильной информацией о часовом поясе. Однако, когда пользователь делает разговор о дате и времени запроса Post, работающий не так, как ожидалось, потому что мне нужно узнать информацию о часовом поясе на основе UserHashId до преобразования фактического времени в время UTC, и я не получаю значение "UserHashId" в блоке установок "RegistrationDate" потому что это все еще не установлено.