Сбой контроллера WebApi - проблема с культурой потоков
У меня есть метод контроллера, который не удается в операторе возврата
[HttpGet("{id}")]
public UserModel Get(int id)
{
System.Threading.Thread.CurrentThread.CurrentCulture =
new System.Globalization.CultureInfo("en-CA");
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("en-CA");
BP.DataAccess.DataUtilities.DatabaseCommand.ConnectionString =
_configuration["connectionStrings:PrimaryConnection"];
UserModel user = UserService.GetUserById(id);
return user;
}
UserModel
класс имеет:
public int RoleTypeId { get; set; }
private ListModels.RoleTypeModel _RoleType;
public ListModels.RoleTypeModel RoleType
{
get
{
_RoleType = Trisura.BP.Core.ListServices
.RoleTypeService.GetRoleTypeById(RoleTypeId);
return _RoleType;
}
private set { _RoleType = value; }
}
public static RoleTypeModel GetRoleTypeById(int id)
{
int cultureId = CultureService.GetThreadCultureId();
List<ListModels.RoleTypeModel> localizedList =
GetRoleTypesLocalizedList(cultureId);
ListModels.RoleTypeModel roleTypeModel =
localizedList.Where(roletype => roletype.Id == id).FirstOrDefault();
if (roleTypeModel == null)
{
throw new CoreExceptions.ObjectNotFoundInDatabaseException(
string.Format("The requested role type (ID = {0}) was not found.", id));
}
return roleTypeModel;
}
public static RoleTypeModel GetRoleTypeById(int id)
{
// this returns "en-US" (0) instead of "en-CA" (1)
int cultureId = CultureService.GetThreadCultureId();
List<ListModels.RoleTypeModel> localizedList = GetRoleTypesLocalizedList(cultureId);
ListModels.RoleTypeModel roleTypeModel =
localizedList.Where(roletype => roletype.Id == id).FirstOrDefault();
if (roleTypeModel == null)
{
throw new CoreExceptions.ObjectNotFoundInDatabaseException(
string.Format("The requested role type (ID = {0}) was not found.", id));
return roleTypeModel;
}
}
когда контроллер нажимает return user;
, это не удается, потому что поток CurrentCulture
установлен в en-US
даже я прямо сказал, что культура en-CA
,
У кого-нибудь есть объяснение? Это происходит в отдельной теме? Как убедиться, что моя модель будет работать с той же культурой?