1
1
using System ;
2
- using System . Collections . Generic ;
3
- using System . Globalization ;
4
2
using System . Linq ;
5
3
using System . Reflection ;
6
4
using System . Runtime . Serialization ;
5
+ using System . Security ;
7
6
8
7
namespace NHibernate . Util
9
8
{
@@ -28,7 +27,7 @@ public static SerializableMethodInfo Wrap(MethodInfo methodInfo)
28
27
/// Creates a new <see cref="SerializableMethodInfo"/>
29
28
/// </summary>
30
29
/// <param name="methodInfo">The <see cref="MethodInfo"/> being wrapped for serialization.</param>
31
- public SerializableMethodInfo ( MethodInfo methodInfo )
30
+ private SerializableMethodInfo ( MethodInfo methodInfo )
32
31
{
33
32
_methodInfo = methodInfo ;
34
33
if ( methodInfo != null )
@@ -46,42 +45,24 @@ private SerializableMethodInfo(SerializationInfo info, StreamingContext context)
46
45
SerializableSystemType [ ] parameterSystemTypes = info . GetValue < SerializableSystemType [ ] > ( "parameterTypesHelper" ) ;
47
46
48
47
System . Type [ ] parameterTypes = parameterSystemTypes ? . Select ( x => x . GetType ( ) ) . ToArray ( ) ?? new System . Type [ 0 ] ;
49
- this . _methodInfo = declaringType ? . GetMethod (
48
+ _methodInfo = declaringType ? . GetMethod (
50
49
fieldName ,
51
50
BindingFlags . DeclaredOnly | BindingFlags . Instance | BindingFlags . Public | BindingFlags . NonPublic , null , parameterTypes , null ) ;
52
51
}
53
52
53
+ [ SecurityCritical ]
54
54
public void GetObjectData ( SerializationInfo info , StreamingContext context )
55
55
{
56
56
SerializableSystemType [ ] parameterSystemTypes =
57
57
_methodInfo ? . GetParameters ( )
58
- . Select ( x => new SerializableSystemType ( x . ParameterType ) )
58
+ . Select ( x => SerializableSystemType . Wrap ( x . ParameterType ) )
59
59
. ToArray ( ) ;
60
60
61
- info . AddValueWithType ( "declaringType" , SerializableSystemType . Wrap ( _methodInfo ? . DeclaringType ) ) ;
61
+ info . AddValue ( "declaringType" , SerializableSystemType . Wrap ( _methodInfo ? . DeclaringType ) ) ;
62
62
info . AddValue ( "methodName" , _methodInfo ? . Name ) ;
63
- info . AddValueWithType ( "parameterTypesHelper" , parameterSystemTypes ) ;
63
+ info . AddValue ( "parameterTypesHelper" , parameterSystemTypes ) ;
64
64
}
65
65
66
66
public MethodInfo Value => _methodInfo ;
67
-
68
- private bool Equals ( SerializableMethodInfo other )
69
- {
70
- return Equals ( _methodInfo , other . _methodInfo ) ;
71
- }
72
-
73
- public override bool Equals ( object obj )
74
- {
75
- if ( ReferenceEquals ( null , obj ) ) return false ;
76
- if ( ReferenceEquals ( this , obj ) ) return true ;
77
- if ( ReferenceEquals ( this . _methodInfo , obj ) ) return true ;
78
- if ( obj is SerializableMethodInfo ) return Equals ( ( SerializableMethodInfo ) obj ) ;
79
- return ( obj is MethodInfo ) && this . _methodInfo . Equals ( obj ) ;
80
- }
81
-
82
- public override int GetHashCode ( )
83
- {
84
- return _methodInfo . GetHashCode ( ) ;
85
- }
86
67
}
87
68
}
0 commit comments