Reputation: 412
I have a base page class that implements protected override void InitializeCulture() however it is never called during the page rendering process?
I have added the following code to my base page
protected override void InitializeCulture()
{
var cultureCode = ConfigManager.GetConfig("System:CultureCode") ?? "en-GB";
var cultureInfo = CultureInfo.CreateSpecificCulture(cultureCode);
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
}
The value returned by ConfigManager.GetConfig("System:CultureCode")
is en-US.
The overridden method is never called and the txtCulture.Text = Thread.CurrentThread.CurrentCulture.Name
in my test page always returns en-GB!
Upvotes: 1
Views: 442
Reputation: 18975
Did you inherit BasePage
from System.Web.UI.Page
, I reproduced it worked
public class BasePage : System.Web.UI.Page
{
protected override void InitializeCulture()
{
var cultureCode = ConfigManager.GetConfig("System:CultureCode") ?? "en-GB";
var cultureInfo = CultureInfo.CreateSpecificCulture(cultureCode);
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
}
}
Default page
public partial class _Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
}
Upvotes: 1