| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System.Configuration;
- using Abp.Configuration.Startup;
- using Abp.Dependency;
- namespace Abp.Domain.Uow
- {
- /// <summary>
- /// Default implementation of <see cref="IConnectionStringResolver"/>.
- /// Get connection string from <see cref="IAbpStartupConfiguration"/>,
- /// or "Default" connection string in config file,
- /// or single connection string in config file.
- /// </summary>
- public class DefaultConnectionStringResolver : IConnectionStringResolver, ITransientDependency
- {
- private readonly IAbpStartupConfiguration _configuration;
- /// <summary>
- /// Initializes a new instance of the <see cref="DefaultConnectionStringResolver"/> class.
- /// </summary>
- public DefaultConnectionStringResolver(IAbpStartupConfiguration configuration)
- {
- _configuration = configuration;
- }
- public virtual string GetNameOrConnectionString(ConnectionStringResolveArgs args)
- {
- Check.NotNull(args, nameof(args));
- var defaultConnectionString = _configuration.DefaultNameOrConnectionString;
- if (!string.IsNullOrWhiteSpace(defaultConnectionString))
- {
- return defaultConnectionString;
- }
- if (ConfigurationManager.ConnectionStrings["Default"] != null)
- {
- return "Default";
- }
- if (ConfigurationManager.ConnectionStrings.Count == 1)
- {
- return ConfigurationManager.ConnectionStrings[0].ConnectionString;
- }
- throw new AbpException("Could not find a connection string definition for the application. Set IAbpStartupConfiguration.DefaultNameOrConnectionString or add a 'Default' connection string to application .config file.");
- }
- }
- }
|