Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Database"/> class.
 /// </summary>
 /// <param name="server">The server.</param>
 /// <param name="binding">The binding.</param>
 public Database(IServer server, IDBBinding binding)
 {
     Server = server;
     Uri relative = binding.Uri.IsAbsoluteUri ? server.Uri.MakeRelativeUri(binding.Uri) : binding.Uri;
     Uri = new Uri(server.Uri, relative);
     Binding = binding;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets an interface for the named database.
        /// </summary>
        /// <param name="binding">The binding.</param>
        /// <returns></returns>
        public IDatabase GetDatabase(IDBBinding binding)
        {
            IDatabase db = null;
            _DatabaseLookup.TryGetValue(binding.DatabaseName.ToString(), out db);
            if (db != null)
                return db;

            lock (_DatabaseLookup)
            {
                _DatabaseLookup.TryGetValue(binding.DatabaseName.ToString(), out db);
                if (db != null)
                    return db;

                db = new Database(this, binding);

                _DatabaseLookup[binding.DatabaseName.ToString()] = db;
                return db;
            }
        }