File tree 7 files changed +123
-118
lines changed
7 files changed +123
-118
lines changed Original file line number Diff line number Diff line change 1
- using NUnit . Framework ;
1
+ #if NETCOREAPP2_0
2
+ using NUnit . Framework ;
2
3
3
- #if NETCOREAPP2_0
4
4
using System . Configuration ;
5
5
using System . IO ;
6
6
using log4net . Repository . Hierarchy ;
7
7
using NHibernate . Cfg ;
8
- #endif
9
8
10
9
namespace NHibernate . Test
11
10
{
12
- #if NETCOREAPP2_0
13
11
[ SetUpFixture ]
14
- #endif
15
12
public class TestsContext
16
13
{
17
14
private static bool ExecutingWithVsTest { get ; } =
18
15
System . Reflection . Assembly . GetEntryAssembly ( ) ? . GetName ( ) . Name == "testhost" ;
19
16
20
- #if NETCOREAPP2_0
21
17
[ OneTimeSetUp ]
22
18
public void RunBeforeAnyTests ( )
23
19
{
@@ -49,6 +45,6 @@ private static void ConfigureLog4Net()
49
45
hierarchy . Root . AddAppender ( consoleAppender ) ;
50
46
hierarchy . Configured = true ;
51
47
}
52
- #endif
53
48
}
54
49
}
50
+ #endif
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ namespace NHibernate . Cfg
2
+ {
3
+ /// <summary>
4
+ /// Base class for NHibernate configuration settings
5
+ /// </summary>
6
+ public abstract class ConfigurationProvider
7
+ {
8
+ public abstract IHibernateConfiguration GetConfiguration ( ) ;
9
+ public abstract string GetNamedConnectionString ( string name ) ;
10
+
11
+ /// <summary>
12
+ /// Type that implements <see cref="INHibernateLoggerFactory"/>
13
+ /// </summary>
14
+ public abstract string GetLoggerFactoryClassName ( ) ;
15
+ }
16
+ }
Original file line number Diff line number Diff line change
1
+ namespace NHibernate . Cfg
2
+ {
3
+ class NullConfigurationManager : ConfigurationProvider
4
+ {
5
+ public override IHibernateConfiguration GetConfiguration ( )
6
+ {
7
+ return null ;
8
+ }
9
+
10
+ public override string GetNamedConnectionString ( string name )
11
+ {
12
+ return null ;
13
+ }
14
+
15
+ public override string GetLoggerFactoryClassName ( )
16
+ {
17
+ return null ;
18
+ }
19
+ }
20
+ }
Original file line number Diff line number Diff line change @@ -18,13 +18,13 @@ namespace NHibernate.Cfg
18
18
/// </summary>
19
19
public sealed class Settings
20
20
{
21
- private static ConfigurationManagerBase _configurationManager = new StaticSystemConfigurationManager ( ) ;
21
+ private static ConfigurationProvider _configurationManager = new StaticSystemConfigurationManager ( ) ;
22
22
23
23
/// <summary>
24
24
/// Provides ability to override default <see cref="System.Configuration.ConfigurationManager"/> with custom implementation.
25
25
/// Can be set to null if all configuration is specified by code
26
26
/// </summary>
27
- public static ConfigurationManagerBase ConfigurationManager
27
+ public static ConfigurationProvider ConfigurationManager
28
28
{
29
29
get => _configurationManager ;
30
30
set => _configurationManager = value ?? new NullConfigurationManager ( ) ;
Original file line number Diff line number Diff line change
1
+ using System ;
2
+ using System . Configuration ;
3
+ using System . Linq ;
4
+ using NHibernate . Cfg . ConfigurationSchema ;
5
+
6
+ namespace NHibernate . Cfg
7
+ {
8
+ class StaticSystemConfigurationManager : ConfigurationProvider
9
+ {
10
+ public override IHibernateConfiguration GetConfiguration ( )
11
+ {
12
+ //TODO 6.0: Throw if not null and not IHibernateConfiguration
13
+ return ConfigurationManager . GetSection ( CfgXmlHelper . CfgSectionName ) as IHibernateConfiguration ;
14
+ }
15
+
16
+ public override string GetNamedConnectionString ( string name )
17
+ {
18
+ return ConfigurationManager . ConnectionStrings [ name ] ? . ConnectionString ;
19
+ }
20
+
21
+ public override string GetLoggerFactoryClassName ( )
22
+ {
23
+ var name = AppSettings . LoggerFactoryClassName ;
24
+ var value = ConfigurationManager . AppSettings [ name ] ;
25
+
26
+ //TODO 6.0: Return value right away. Don't do ignore case search and document it as possible breaking change.
27
+ if ( value != null )
28
+ return value ;
29
+
30
+ return GetAppSettingIgnoreCase ( name ) ;
31
+ }
32
+
33
+ //TODO 6.0: Remove it
34
+ private static string GetAppSettingIgnoreCase ( string name )
35
+ {
36
+ var key = ConfigurationManager . AppSettings . Keys . Cast < string > ( ) . FirstOrDefault ( k => name . Equals ( k , StringComparison . OrdinalIgnoreCase ) ) ;
37
+ return string . IsNullOrEmpty ( key )
38
+ ? null
39
+ : ConfigurationManager . AppSettings [ key ] ;
40
+ }
41
+ }
42
+ }
Original file line number Diff line number Diff line change
1
+ using System . Configuration ;
2
+ using NHibernate . Cfg . ConfigurationSchema ;
3
+
4
+ namespace NHibernate . Cfg
5
+ {
6
+ /// <summary>
7
+ /// Configuration manager that supports user provided configuration
8
+ /// </summary>
9
+ public class SystemConfigurationManager : ConfigurationProvider
10
+ {
11
+ private readonly System . Configuration . Configuration _configuration ;
12
+
13
+ public SystemConfigurationManager ( System . Configuration . Configuration configuration )
14
+ {
15
+ _configuration = configuration ;
16
+ }
17
+
18
+ public override IHibernateConfiguration GetConfiguration ( )
19
+ {
20
+ ConfigurationSection configurationSection = _configuration . GetSection ( CfgXmlHelper . CfgSectionName ) ;
21
+ var xml = configurationSection ? . SectionInformation . GetRawXml ( ) ;
22
+ return xml == null ? null : HibernateConfiguration . FromAppConfig ( xml ) ;
23
+ }
24
+
25
+ public override string GetNamedConnectionString ( string name )
26
+ {
27
+ return _configuration . ConnectionStrings . ConnectionStrings [ name ] ? . ConnectionString ;
28
+ }
29
+
30
+ public override string GetLoggerFactoryClassName ( )
31
+ {
32
+ return GetAppSetting ( AppSettings . LoggerFactoryClassName ) ;
33
+ }
34
+
35
+ private string GetAppSetting ( string name )
36
+ {
37
+ return _configuration . AppSettings . Settings [ name ] ? . Value ;
38
+ }
39
+ }
40
+ }
You can’t perform that action at this time.
0 commit comments