Статический конструктор для всей сборки - PullRequest
11 голосов
/ 08 августа 2010

У меня много точек входа в мою сборку, и я хочу, чтобы некоторый код инициализации выполнялся один раз для каждого 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.

Это позволяет мне избегать написания статических конструкторов котельной пластины в каждой точке входа, но без множественного наследования это не всегда возможно. Можете ли вы придумать какие-либо другие лучшие варианты?

1 Ответ

11 голосов
/ 08 августа 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...