Если вы не будете часто звонить, я бы не волновался.В любом случае, есть несколько простых оптимизаций, которые вы можете сделать.
Например, Assembly.GetEntryAssembly()
не изменится в течение времени жизни вашего процесса (для данного домена приложения), поэтому нет необходимости делать этозвоните повторно, даже если вам нужен доступ к нему.Вы можете заменить его на:
private static Assembly _entryAssembly;
private Assembly ExecutingAssembly
{
get
{
if (_entryAssembly == null )
{
_assembly = Assembly.GetEntryAssembly();
}
return _entryAssembly
}
Теперь вам не нужно беспокоиться о том, насколько дорог этот звонок;хотя, возможно, как комментирует другой ответ, может быть, фреймворк на самом деле делает это для вас.
[примечание: это намеренно не безопасный поток, синглтон - в худшем случае вы делаете вызов1009 * несколько раз, если сначала к ним подобным образом обращается несколько потоков - не стоит пытаться заблокировать для этого сценария ИМХО]