1010
1111namespace NHibernate
1212{
13- using System . Collections . Generic ;
14- using System . Reflection ;
15-
1613 /// <summary>
1714 /// Provides access to the full range of NHibernate built-in types.
1815 /// IType instances may be used to bind values to query parameters.
@@ -21,26 +18,6 @@ namespace NHibernate
2118 /// </summary>
2219 public static partial class NHibernateUtil
2320 {
24- static private readonly Dictionary < System . Type , IType > clrTypeToNHibernateType = new Dictionary < System . Type , IType > ( ) ;
25-
26- static NHibernateUtil ( )
27- {
28- FieldInfo [ ] fields = typeof ( NHibernateUtil ) . GetFields ( ) ;
29- foreach ( FieldInfo info in fields )
30- {
31- if ( typeof ( IType ) . IsAssignableFrom ( info . FieldType ) == false )
32- continue ;
33- IType type = ( IType ) info . GetValue ( null ) ;
34- clrTypeToNHibernateType [ type . ReturnedClass ] = type ;
35- }
36-
37- // There are multiple possibilites for boolean, strings and datetime.
38- // Override so that we use the most natural mapping.
39- clrTypeToNHibernateType [ Boolean . ReturnedClass ] = Boolean ;
40- clrTypeToNHibernateType [ String . ReturnedClass ] = String ;
41- clrTypeToNHibernateType [ DateTime . ReturnedClass ] = DateTime ;
42- }
43-
4421 /// <summary>
4522 /// Guesses the IType of this object
4623 /// </summary>
@@ -61,8 +38,8 @@ public static IType GuessType(System.Type type)
6138 {
6239 type = type . UnwrapIfNullable ( ) ;
6340
64- IType value ;
65- if ( clrTypeToNHibernateType . TryGetValue ( type , out value ) )
41+ var value = TypeFactory . GetDefaultTypeFor ( type ) ;
42+ if ( value != null )
6643 return value ;
6744
6845 if ( type . IsEnum )
@@ -73,7 +50,7 @@ public static IType GuessType(System.Type type)
7350 {
7451 return Custom ( type ) ;
7552 }
76-
53+
7754 return Entity ( type ) ;
7855 }
7956
@@ -401,13 +378,13 @@ public static void Initialize(object proxy)
401378 {
402379 return ;
403380 }
404- else if ( proxy . IsProxy ( ) )
381+ if ( proxy . IsProxy ( ) )
405382 {
406383 ( ( INHibernateProxy ) proxy ) . HibernateLazyInitializer . Initialize ( ) ;
407384 }
408- else if ( proxy is IPersistentCollection )
385+ else if ( proxy is IPersistentCollection coll )
409386 {
410- ( ( IPersistentCollection ) proxy ) . ForceInitialization ( ) ;
387+ coll . ForceInitialization ( ) ;
411388 }
412389 }
413390
@@ -533,7 +510,7 @@ public static void Close(IEnumerator enumerator)
533510 EnumerableImpl hibernateEnumerator = enumerator as EnumerableImpl ;
534511 if ( hibernateEnumerator == null )
535512 {
536- throw new ArgumentException ( "Not a NHibernate enumerator" , " enumerator" ) ;
513+ throw new ArgumentException ( "Not a NHibernate enumerator" , nameof ( enumerator ) ) ;
537514 }
538515 hibernateEnumerator . Dispose ( ) ;
539516 }
@@ -547,7 +524,7 @@ public static void Close(IEnumerable enumerable)
547524 EnumerableImpl hibernateEnumerable = enumerable as EnumerableImpl ;
548525 if ( hibernateEnumerable == null )
549526 {
550- throw new ArgumentException ( "Not a NHibernate enumerable" , " enumerable" ) ;
527+ throw new ArgumentException ( "Not a NHibernate enumerable" , nameof ( enumerable ) ) ;
551528 }
552529 hibernateEnumerable . Dispose ( ) ;
553530 }
0 commit comments