/// <summary> /// Loads all types in the current domain and caches them /// </summary> /// <param name="logger"> /// Logger /// </param> private void LoadCurrentDomainTypes(ILogger logger) { if (logger == null) { throw new ArgumentNullException("logger"); } var entryAssembly = EnvironmentInfo.GetEntryAssembly(); if (entryAssembly != null) { logger.Debug(() => $"Add entry assembly to CurrentDomainTypes {entryAssembly.FullName}"); var assemblyName = entryAssembly.GetName(); CurrentDomainTypes.AddAssembly(assemblyName); } var loadedTypes = CurrentDomainTypes.GetTypes().ToList(); logger.Debug(() => $"Count of loaded types in actual domain {AppDomain.CurrentDomain.FriendlyName} {loadedTypes.Count}"); }