/// <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; }
/// <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; } }