public static IEnumerable <EntityTokenHook> GetHooks() { int tt1 = System.Environment.TickCount; var hooks = new List <EntityTokenHook>(); foreach (string providerName in ElementProviderRegistry.ElementProviderNames) { if (!ElementProviderRegistry.IsProviderHookingProvider(providerName)) { continue; } int t1 = System.Environment.TickCount; hooks.AddRange(ElementProviderPluginFacade.GetHooks(providerName)); int t2 = System.Environment.TickCount; Log.LogVerbose(LogTitle, "Time for {0}: {1} ms", providerName, t2 - t1); } int tt2 = System.Environment.TickCount; Log.LogVerbose(LogTitle, "Total time for: {0} ms", tt2 - tt1); return(hooks); }
internal static IHooklessElementProvider GetElementProvider(string providerName) { IHooklessElementProvider provider; if (!_resourceLocker.Resources.ProviderCache.TryGetValue(providerName, out provider)) { try { if (ElementProviderRegistry.IsProviderHookingProvider(providerName)) { provider = _resourceLocker.Resources.Factory.Create(providerName); } else { provider = _resourceLocker.Resources.HooklessFactory.Create(providerName); } provider.Context = new ElementProviderContext(providerName); using (_resourceLocker.Locker) { if (!_resourceLocker.Resources.ProviderCache.ContainsKey(providerName)) { _resourceLocker.Resources.ProviderCache.Add(providerName, provider); } } } catch (ArgumentException ex) { HandleConfigurationError(ex); } catch (ConfigurationErrorsException ex) { HandleConfigurationError(ex); } } return(provider); }