У меня много точек входа в мою сборку, и я хочу, чтобы некоторый код инициализации выполнялся один раз для каждого AppDomain до запуска любого другого кода из этой сборки. Как лучше всего это сделать?
Одно решение, которое я вижу, состоит в том, чтобы иметь класс со статическим конструктором и наследовать каждую точку входа, которую я имею от него. Примерно так:
public class Initializer
{
static Initializer()
{
EnsureInitialized(); // Calls initialization code once and only once
}
}
public class EntryPointOne : Initializer, IEntryPoint
{
// Some code here
}
public class EntryPointTwo : Initializer, IEntryPoint
{
// Some code here
}
// etc.
Это позволяет мне избегать написания статических конструкторов котельной пластины в каждой точке входа, но без множественного наследования это не всегда возможно. Можете ли вы придумать какие-либо другие лучшие варианты?