Не совсем уверен, что это именно то, что вы имеете в виду, но чтобы инициализировать что-то один раз из Page_Load, вы можете использовать статический класс со статическим bool, чтобы определить, инициализирован ли он.Учитывая, что он находится на Page_Load, вам также потребуется защита от нескольких потоков - поэтому используйте блокировку с двойной проверкой, чтобы сделать ее поточно-ориентированной и защищенной от состояния гонки.
public static class InitMe
{
private static bool isInitialized = false;
private static object theLock = new Object();
public static void MyInit()
{
if(!isInitialized)
{
lock(theLock);
{
if(!isInitialized) // double checked lock for thread safety
{
// Perform initialization
isInitialized = true;
}
}
}
}
}
, а в вашей Page_Load вызовите ее черезInitMe.MyInit()
Надеюсь, это поможет.