// Token: 0x06000BB5 RID: 2997 RVA: 0x0002B024 File Offset: 0x00029224 internal override object GetValue(BaseValueSourceInternal valueSource) { object themeDictionaryLock = SystemResources.ThemeDictionaryLock; object result; lock (themeDictionaryLock) { if (base.Dictionary != null) { object key = this.Key; SystemResources.IsSystemResourcesParsing = true; bool flag2; object value; try { value = base.Dictionary.GetValue(key, out flag2); if (flag2) { this.Value = value; base.Dictionary = null; } } finally { SystemResources.IsSystemResourcesParsing = false; } if ((key is Type || key is ResourceKey) && this._canCacheAsThemeResource && flag2) { SystemResources.CacheResource(key, value, false); } result = value; } else { result = this.Value; } } return(result); }
/// <summary> /// Search just the App and Theme Resources. /// </summary> /// <param name="serviceProvider"></param> /// <param name="allowDeferredReference"></param> /// <param name="mustReturnDeferredResourceReference"></param> /// <returns></returns> private object FindResourceInAppOrSystem(IServiceProvider serviceProvider, bool allowDeferredReference, bool mustReturnDeferredResourceReference) { object val; if (!SystemResources.IsSystemResourcesParsing) { object source; val = FrameworkElement.FindResourceFromAppOrSystem(ResourceKey, out source, false, // disableThrowOnResourceFailure allowDeferredReference, mustReturnDeferredResourceReference); } else { val = SystemResources.FindResourceInternal(ResourceKey, allowDeferredReference, mustReturnDeferredResourceReference); } return(val); }