internal static void RecordLookupResult(object key, ResourceDictionary rd)
 {
     if (ResourceDictionaryDiagnostics.IsEnabled && ResourceDictionaryDiagnostics._lookupResultStack != null)
     {
         ResourceDictionaryDiagnostics.RecordLookupResultImpl(key, rd);
     }
 }
 internal static void RemoveResourceDictionaryForUri(Uri uri, ResourceDictionary rd)
 {
     if (uri != null && ResourceDictionaryDiagnostics.IsEnabled)
     {
         ResourceDictionaryDiagnostics.RemoveResourceDictionaryForUriImpl(uri, rd);
     }
 }
        // Token: 0x060017B3 RID: 6067 RVA: 0x00073B30 File Offset: 0x00071D30
        internal static void OnStaticResourceResolved(object targetObject, object targetProperty, ResourceDictionaryDiagnostics.LookupResult result)
        {
            EventHandler <StaticResourceResolvedEventArgs> staticResourceResolved = ResourceDictionaryDiagnostics.StaticResourceResolved;

            if (staticResourceResolved != null && result.Dictionary != null)
            {
                staticResourceResolved(null, new StaticResourceResolvedEventArgs(targetObject, targetProperty, result.Dictionary, result.Key));
            }
            ResourceDictionaryDiagnostics.RequestCacheCleanup(targetObject);
        }
        /// <summary>Finds the resource dictionaries created from a given source URI. </summary>
        /// <param name="uri">The source URI. The method return <see langword="null" /> if no resource dictionaries were created from <paramref name="uri" /> </param>
        /// <returns>The resource dictionaries created from <paramref name="uri" />. The method returns <see langword="null" /> if Visual Diagnostics is not enabled, the <see langword="ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO" /> environment variable is not set or is set to <see langword="false" />, or no resource dictionaries were created from <paramref name="uri" />.
        /// </returns>
        // Token: 0x060017A1 RID: 6049 RVA: 0x000735EC File Offset: 0x000717EC
        public static IEnumerable <ResourceDictionary> GetResourceDictionariesForSource(Uri uri)
        {
            if (!ResourceDictionaryDiagnostics.IsEnabled || ResourceDictionaryDiagnostics._dictionariesFromUri == null)
            {
                return(ResourceDictionaryDiagnostics.EmptyResourceDictionaries);
            }
            object dictionariesFromUriLock = ResourceDictionaryDiagnostics._dictionariesFromUriLock;
            IEnumerable <ResourceDictionary> result;

            lock (dictionariesFromUriLock)
            {
                List <WeakReference <ResourceDictionary> > list;
                if (!ResourceDictionaryDiagnostics._dictionariesFromUri.TryGetValue(uri, out list) || list.Count == 0)
                {
                    result = ResourceDictionaryDiagnostics.EmptyResourceDictionaries;
                }
                else
                {
                    List <ResourceDictionary> list2 = new List <ResourceDictionary>(list.Count);
                    List <WeakReference <ResourceDictionary> > list3 = null;
                    foreach (WeakReference <ResourceDictionary> weakReference in list)
                    {
                        ResourceDictionary item;
                        if (weakReference.TryGetTarget(out item))
                        {
                            list2.Add(item);
                        }
                        else
                        {
                            if (list3 == null)
                            {
                                list3 = new List <WeakReference <ResourceDictionary> >();
                            }
                            list3.Add(weakReference);
                        }
                    }
                    if (list3 != null)
                    {
                        ResourceDictionaryDiagnostics.RemoveEntries(uri, list, list3);
                    }
                    result = list2.AsReadOnly();
                }
            }
            return(result);
        }
        // Token: 0x060017A5 RID: 6053 RVA: 0x00073794 File Offset: 0x00071994
        private static void RemoveResourceDictionaryForUriImpl(Uri uri, ResourceDictionary rd)
        {
            object dictionariesFromUriLock = ResourceDictionaryDiagnostics._dictionariesFromUriLock;

            lock (dictionariesFromUriLock)
            {
                List <WeakReference <ResourceDictionary> > list;
                if (ResourceDictionaryDiagnostics._dictionariesFromUri != null && ResourceDictionaryDiagnostics._dictionariesFromUri.TryGetValue(uri, out list))
                {
                    List <WeakReference <ResourceDictionary> > list2 = new List <WeakReference <ResourceDictionary> >();
                    foreach (WeakReference <ResourceDictionary> weakReference in list)
                    {
                        ResourceDictionary resourceDictionary;
                        if (!weakReference.TryGetTarget(out resourceDictionary) || resourceDictionary == rd)
                        {
                            list2.Add(weakReference);
                        }
                    }
                    ResourceDictionaryDiagnostics.RemoveEntries(uri, list, list2);
                }
            }
        }
 /// <summary>Gets the application owners of a specified resource dictionary. </summary>
 /// <param name="dictionary">A resource dictionary. </param>
 /// <returns>The application owners of <paramref name="dictionary" />. If there are no application owners, the method returns <see langword="null" />. </returns>
 // Token: 0x060017A9 RID: 6057 RVA: 0x000738CC File Offset: 0x00071ACC
 public static IEnumerable <Application> GetApplicationOwners(ResourceDictionary dictionary)
 {
     return(ResourceDictionaryDiagnostics.GetOwners <Application>(dictionary.ApplicationOwners, ResourceDictionaryDiagnostics.EmptyApplicationList));
 }
 /// <summary>Gets the framework content owners of a specified resource dictionary. </summary>
 /// <param name="dictionary">A resource dictionary. </param>
 /// <returns>The framework content owners of <paramref name="dictionary" />. If there are no framework content owners, the method returns <see langword="null" />. </returns>
 // Token: 0x060017A8 RID: 6056 RVA: 0x000738BA File Offset: 0x00071ABA
 public static IEnumerable <FrameworkContentElement> GetFrameworkContentElementOwners(ResourceDictionary dictionary)
 {
     return(ResourceDictionaryDiagnostics.GetOwners <FrameworkContentElement>(dictionary.FrameworkContentElementOwners, ResourceDictionaryDiagnostics.EmptyFrameworkContentElementList));
 }