Exemplo n.º 1
0
            protected override void AddChild(SchemaMemberBase child)
            {
                if (!(child is SchemaMember schema))
                {
                    throw new ArgumentException();
                }

                if (_children == null)
                {
                    System.Threading.Interlocked.CompareExchange(ref _children, new NamedCollection <SchemaMember>(item => item.Name), null);
                }

                _children.Add(schema);
                schema._parent = this;
            }
Exemplo n.º 2
0
        public IDataProvider GetProvider(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            if (_providers.TryGet(name, out var provider))
            {
                return(provider);
            }

            lock (_providers)
            {
                if (_providers.TryGet(name, out provider))
                {
                    return(provider);
                }

                _providers.Add(provider = this.CreateProvider(name));
            }

            return(provider);
        }