// Token: 0x06000865 RID: 2149 RVA: 0x0001B4E8 File Offset: 0x000196E8
        private ResourceDictionary FindTheResourceDictionary(IServiceProvider serviceProvider, bool isDeferredContentSearch)
        {
            IXamlSchemaContextProvider xamlSchemaContextProvider = serviceProvider.GetService(typeof(IXamlSchemaContextProvider)) as IXamlSchemaContextProvider;

            if (xamlSchemaContextProvider == null)
            {
                throw new InvalidOperationException(SR.Get("MarkupExtensionNoContext", new object[]
                {
                    base.GetType().Name,
                    "IXamlSchemaContextProvider"
                }));
            }
            IAmbientProvider ambientProvider = serviceProvider.GetService(typeof(IAmbientProvider)) as IAmbientProvider;

            if (ambientProvider == null)
            {
                throw new InvalidOperationException(SR.Get("MarkupExtensionNoContext", new object[]
                {
                    base.GetType().Name,
                    "IAmbientProvider"
                }));
            }
            XamlSchemaContext schemaContext = xamlSchemaContextProvider.SchemaContext;
            XamlType          xamlType      = schemaContext.GetXamlType(typeof(FrameworkElement));
            XamlType          xamlType2     = schemaContext.GetXamlType(typeof(Style));
            XamlType          xamlType3     = schemaContext.GetXamlType(typeof(FrameworkTemplate));
            XamlType          xamlType4     = schemaContext.GetXamlType(typeof(Application));
            XamlType          xamlType5     = schemaContext.GetXamlType(typeof(FrameworkContentElement));
            XamlMember        member        = xamlType5.GetMember("Resources");
            XamlMember        member2       = xamlType.GetMember("Resources");
            XamlMember        member3       = xamlType2.GetMember("Resources");
            XamlMember        member4       = xamlType2.GetMember("BasedOn");
            XamlMember        member5       = xamlType3.GetMember("Resources");
            XamlMember        member6       = xamlType4.GetMember("Resources");

            XamlType[] types = new XamlType[]
            {
                schemaContext.GetXamlType(typeof(ResourceDictionary))
            };
            IEnumerable <AmbientPropertyValue> allAmbientValues = ambientProvider.GetAllAmbientValues(null, isDeferredContentSearch, types, new XamlMember[]
            {
                member,
                member2,
                member3,
                member4,
                member5,
                member6
            });
            List <AmbientPropertyValue> list = allAmbientValues as List <AmbientPropertyValue>;

            for (int i = 0; i < list.Count; i++)
            {
                AmbientPropertyValue ambientPropertyValue = list[i];
                if (ambientPropertyValue.Value is ResourceDictionary)
                {
                    ResourceDictionary resourceDictionary = (ResourceDictionary)ambientPropertyValue.Value;
                    if (resourceDictionary.Contains(this.ResourceKey))
                    {
                        return(resourceDictionary);
                    }
                }
                if (ambientPropertyValue.Value is Style)
                {
                    Style style = (Style)ambientPropertyValue.Value;
                    ResourceDictionary resourceDictionary2 = style.FindResourceDictionary(this.ResourceKey);
                    if (resourceDictionary2 != null)
                    {
                        return(resourceDictionary2);
                    }
                }
            }
            return(null);
        }