/// <summary>
        /// Инициализировать счётчики в сборке (для обёрток).
        /// Ищет все типы, унаследованные от PerfCountersContainer или помеченные атрибутом PerformanceCounterContainerAttribute и
        /// содержащие метод инициализации, помеченный атрибутом PerformanceCounterInitMethodAttribute
        /// </summary>
        /// <param name="category">Родительская категория</param>
        /// <param name="type">Тип внутри сборки со счётчиками</param>
        protected static void InitializeCountersInAssembly(CategoryWrapper category, Type type)
        {
            if (category == null)
            {
                throw new ArgumentNullException("category");
            }
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            Initialization.Initializer.InitializeCategoryWrapper(category, type.Assembly);
        }
        /// <summary>
        /// Инициализировать счётчики в сборках (для обёрток).
        /// Ищет все типы, унаследованные от PerfCountersContainer или помеченные атрибутом PerformanceCounterContainerAttribute и
        /// содержащие метод инициализации, помеченный атрибутом PerformanceCounterInitMethodAttribute
        /// </summary>
        /// <param name="category">Родительская категория</param>
        /// <param name="types">Перечень типов внутри сборок со счётчиками</param>
        protected static void InitializeCountersInAssembly(CategoryWrapper category, params Type[] types)
        {
            if (category == null)
            {
                throw new ArgumentNullException("category");
            }
            if (types == null)
            {
                throw new ArgumentNullException("types");
            }

            Initialization.Initializer.InitializeCategoryWrapper(category, types.Select(o => o.Assembly));
        }
        /// <summary>
        /// Инициализировать счётчики в сборках (для обёрток).
        /// Ищет все типы, унаследованные от PerfCountersContainer или помеченные атрибутом PerformanceCounterContainerAttribute и
        /// содержащие метод инициализации, помеченный атрибутом PerformanceCounterInitMethodAttribute
        /// </summary>
        /// <param name="category">Родительская категория</param>
        /// <param name="assembly">Перечень сборок</param>
        protected static void InitializeCountersInAssembly(CategoryWrapper category, params Assembly[] assembly)
        {
            if (category == null)
            {
                throw new ArgumentNullException("category");
            }
            if (assembly == null)
            {
                throw new ArgumentNullException("assembly");
            }

            Initialization.Initializer.InitializeCategoryWrapper(category, assembly);
        }
 /// <summary>
 /// Инициализировать обёртку в подчинённой сборке
 /// </summary>
 /// <param name="category">Текущая обёртка</param>
 /// <param name="assembly">Сборка, в которой проводится инициализация</param>
 /// <returns>Число проинициализированных контейнеров счётчиков</returns>
 protected static int InitializeCategoryWrapper(CategoryWrapper category, Assembly assembly)
 {
     return(Initialization.Initializer.InitializeCategoryWrapper(category, assembly));
 }