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);
        }
示例#2
0
        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);
        }