public bool TryGetValue(object key, out object value)
        {
            if (!_values.TryGetValue(key, out value))
            {
                try
                {
                    if (!_isResolving)
                    {
                        // This prevents a stack overflow while looking for a
                        // missing resource in generated xaml code.
                        _isResolving = true;

                        value = DefaultResolver?.Invoke(key.ToString());
                    }
                }
                finally
                {
                    _isResolving = false;
                }

                return(value != null);
            }

            return(true);
        }
Exemple #2
0
        public bool TryGetValue(object key, out object value)
        {
            if (!_values.TryGetValue(key, out value))
            {
                try
                {
                    _resolvingDepth++;

                    if (_resolvingDepth <= FeatureConfiguration.Xaml.MaxRecursiveResolvingDepth)
                    {
                        // This prevents a stack overflow while looking for a
                        // missing resource in generated xaml code.

                        value = DefaultResolver?.Invoke(key.ToString());
                    }
                }
                finally
                {
                    _resolvingDepth--;
                }

                return(value != null);
            }

            return(true);
        }
        public bool TryGetValue(object key, out object value)
        {
            if (!_values.TryGetValue(key, out value))
            {
                value = DefaultResolver?.Invoke(key.ToString());

                return(value != null);
            }

            return(true);
        }
        public object Lookup(object key)
        {
            object value;

            var keyName = key.ToString();

            if (!_values.TryGetValue(keyName, out value))
            {
                return(DefaultResolver?.Invoke(keyName));
            }

            return(value);
        }
        public bool HasKey(object key)
        {
            var keyName = key.ToString();

            return(_values.ContainsKey(keyName) || DefaultResolver?.Invoke(keyName) != null);
        }