@@ -8,45 +8,64 @@ namespace NHibernate.Caches.Common
88 /// Base generic class for the cache configuration settings.
99 /// </summary>
1010 /// <typeparam name="TConfig">The configuration class.</typeparam>
11- /// <typeparam name="TConfigHandler">The configuration class section handler.</typeparam>
12- public abstract class ConfigurationProviderBase < TConfig , TConfigHandler >
11+ public abstract class ConfigurationProviderBase < TConfig >
1312 where TConfig : class
14- where TConfigHandler : ICacheConfigurationSectionHandler , new ( )
1513 {
16- private static ConfigurationProviderBase < TConfig , TConfigHandler > _current ;
17- private static readonly string ConfigurationSectionName ;
18-
19- static ConfigurationProviderBase ( )
20- {
21- ConfigurationSectionName = new TConfigHandler ( ) . ConfigurationSectionName ;
22- }
14+ private static ConfigurationProviderBase < TConfig > _current ;
2315
2416 /// <summary>
2517 /// Provides ability to override default <see cref="System.Configuration.ConfigurationManager"/> with custom implementation.
2618 /// Can be set to null if all configuration is specified by code.
2719 /// </summary>
28- public static ConfigurationProviderBase < TConfig , TConfigHandler > Current
20+ public static ConfigurationProviderBase < TConfig > Current
2921 {
30- get => _current ?? ( _current = new StaticConfigurationManagerProvider ( ) ) ;
22+ get => _current ;
3123 set => _current = value ?? new NullConfigurationProvider ( ) ;
3224 }
3325
26+ /// <summary>
27+ /// Get the cache configuration.
28+ /// </summary>
29+ /// <returns>The cache configuration.</returns>
30+ public abstract TConfig GetConfiguration ( ) ;
31+
32+ private class NullConfigurationProvider : ConfigurationProviderBase < TConfig >
33+ {
34+ /// <inheritdoc />
35+ public override TConfig GetConfiguration ( )
36+ {
37+ return null ;
38+ }
39+ }
40+ }
41+
42+ /// <summary>
43+ /// Base generic class for the cache configuration settings.
44+ /// </summary>
45+ /// <typeparam name="TConfig">The configuration class.</typeparam>
46+ /// <typeparam name="TConfigHandler">The configuration class section handler.</typeparam>
47+ public abstract class ConfigurationProviderBase < TConfig , TConfigHandler > : ConfigurationProviderBase < TConfig >
48+ where TConfig : class
49+ where TConfigHandler : ICacheConfigurationSectionHandler , new ( )
50+ {
51+ private static readonly string ConfigurationSectionName ;
52+
53+ static ConfigurationProviderBase ( )
54+ {
55+ ConfigurationSectionName = new TConfigHandler ( ) . ConfigurationSectionName ;
56+ Current = new StaticConfigurationManagerProvider ( ) ;
57+ }
58+
3459 /// <summary>
3560 /// Directly supply the configuration to be used to the configuration provider.
3661 /// </summary>
3762 /// <param name="configuration">The configuration, or <see langword="null" /> for resetting the provider to its
3863 /// default behavior.</param>
3964 public static void SetConfiguration ( Configuration configuration )
4065 {
41- _current = configuration == null ? null : new SystemConfigurationProvider ( configuration ) ;
66+ Current = configuration == null ? null : new SystemConfigurationProvider ( configuration ) ;
4267 }
4368
44- /// <summary>
45- /// Get the cache configuration.
46- /// </summary>
47- /// <returns>The cache configuration.</returns>
48- public abstract TConfig GetConfiguration ( ) ;
49-
5069 private class StaticConfigurationManagerProvider : ConfigurationProviderBase < TConfig , TConfigHandler >
5170 {
5271 /// <inheritdoc />
@@ -82,14 +101,5 @@ public override TConfig GetConfiguration()
82101 return ( TConfig ) section . Create ( null , null , xmlDoc . DocumentElement ) ;
83102 }
84103 }
85-
86- private class NullConfigurationProvider : ConfigurationProviderBase < TConfig , TConfigHandler >
87- {
88- /// <inheritdoc />
89- public override TConfig GetConfiguration ( )
90- {
91- return null ;
92- }
93- }
94104 }
95105}
0 commit comments