Adding AppConfigurationAccessor to access appSettings or connectionStrings in an injected, loosely-coupled way.

Copied from Helpful Libraries, adapted to Orchard conventions.
This commit is contained in:
Lombiq
2015-01-17 19:24:27 +01:00
committed by Zoltán Lehóczky
parent 1e51f157ea
commit af40271734
3 changed files with 45 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Orchard.Environment.Configuration {
public class AppConfigurationAccessor : IAppConfigurationAccessor {
public string GetConfiguration(string name) {
var appSettingsValue = ConfigurationManager.AppSettings[name];
if (appSettingsValue != null) {
return appSettingsValue;
}
var connectionStringSettings = ConfigurationManager.ConnectionStrings[name];
if (connectionStringSettings != null) {
return connectionStringSettings.ConnectionString;
}
return String.Empty;
}
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Orchard.Environment.Configuration {
/// <summary>
/// Exposes application configuration (can be e.g. AppSettings from Web.config or CloudConfiguration on Azure).
/// </summary>
public interface IAppConfigurationAccessor : IDependency {
/// <summary>
/// Gets an application configuration value with the given name (can be e.g. AppSettings from Web.config or CloudConfiguration on Azure).
/// </summary>
/// <param name="name">The name of the application configuration entry.</param>
/// <returns>The string value of the application configuration entry.</returns>
string GetConfiguration(string name);
}
}

View File

@@ -225,6 +225,8 @@
<Compile Include="Environment\AutofacUtil\ConfigurationSettingsReaderConstants.cs" />
<Compile Include="Environment\CollectionOrderModule.cs" />
<Compile Include="Caching\DefaultAsyncTokenProvider.cs" />
<Compile Include="Environment\Configuration\AppConfigurationAccessor.cs" />
<Compile Include="Environment\Configuration\IAppConfigurationAccessor.cs" />
<Compile Include="Environment\Configuration\ShellSettingsSerializer.cs" />
<Compile Include="Environment\Extensions\DefaultCriticalErrorProvider.cs" />
<Compile Include="Environment\Extensions\ExtensionMonitoringCoordinator.cs" />