Я подумываю об использовании HttpModule для целей локализации (на примере этой статьи ) - но мне интересно, это безопасно?
Вот код для справки:
public class CookieLocalizationModule : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
// eat the cookie (if any) and set the culture
if (HttpContext.Current.Request.Cookies["lang"] != null)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["lang"];
string lang = cookie.Value;
var culture = new System.Globalization.CultureInfo(lang);
// is it safe to do this in all situations?
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
}
}
У меня сложилось впечатление, что несколько потоков могут потенциально обслуживать веб-запрос.Безопасно ли устанавливать текущие / текущие культуры пользовательского интерфейса в модуле Http, как этот, и уважать ли его в течение срока службы веб-запроса, независимо от того, сколько потоков задействовано в его обслуживании?1011 *
Я использую этот метод в производстве уже почти год, так что я точно могу убедиться, что совершенно безопасно использовать HttpModule для локализации.