@@ -8,45 +8,64 @@ namespace NHibernate.Caches.Common
8
8
/// Base generic class for the cache configuration settings.
9
9
/// </summary>
10
10
/// <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 >
13
12
where TConfig : class
14
- where TConfigHandler : ICacheConfigurationSectionHandler , new ( )
15
13
{
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 ;
23
15
24
16
/// <summary>
25
17
/// Provides ability to override default <see cref="System.Configuration.ConfigurationManager"/> with custom implementation.
26
18
/// Can be set to null if all configuration is specified by code.
27
19
/// </summary>
28
- public static ConfigurationProviderBase < TConfig , TConfigHandler > Current
20
+ public static ConfigurationProviderBase < TConfig > Current
29
21
{
30
- get => _current ?? ( _current = new StaticConfigurationManagerProvider ( ) ) ;
22
+ get => _current ;
31
23
set => _current = value ?? new NullConfigurationProvider ( ) ;
32
24
}
33
25
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
+
34
59
/// <summary>
35
60
/// Directly supply the configuration to be used to the configuration provider.
36
61
/// </summary>
37
62
/// <param name="configuration">The configuration, or <see langword="null" /> for resetting the provider to its
38
63
/// default behavior.</param>
39
64
public static void SetConfiguration ( Configuration configuration )
40
65
{
41
- _current = configuration == null ? null : new SystemConfigurationProvider ( configuration ) ;
66
+ Current = configuration == null ? null : new SystemConfigurationProvider ( configuration ) ;
42
67
}
43
68
44
- /// <summary>
45
- /// Get the cache configuration.
46
- /// </summary>
47
- /// <returns>The cache configuration.</returns>
48
- public abstract TConfig GetConfiguration ( ) ;
49
-
50
69
private class StaticConfigurationManagerProvider : ConfigurationProviderBase < TConfig , TConfigHandler >
51
70
{
52
71
/// <inheritdoc />
@@ -82,14 +101,5 @@ public override TConfig GetConfiguration()
82
101
return ( TConfig ) section . Create ( null , null , xmlDoc . DocumentElement ) ;
83
102
}
84
103
}
85
-
86
- private class NullConfigurationProvider : ConfigurationProviderBase < TConfig , TConfigHandler >
87
- {
88
- /// <inheritdoc />
89
- public override TConfig GetConfiguration ( )
90
- {
91
- return null ;
92
- }
93
- }
94
104
}
95
105
}
0 commit comments