74 lines
2.1 KiB
C#
74 lines
2.1 KiB
C#
using System.Runtime.CompilerServices;
|
|
using System.Reflection.Emit;
|
|
|
|
namespace System.Reflection
|
|
{
|
|
partial class MethodBase
|
|
{
|
|
public static MethodBase GetMethodFromHandle (RuntimeMethodHandle handle)
|
|
{
|
|
if (handle.IsNullHandle ())
|
|
throw new ArgumentException (SR.Argument_InvalidHandle);
|
|
|
|
MethodBase m = RuntimeMethodInfo.GetMethodFromHandleInternalType (handle.Value, IntPtr.Zero);
|
|
if (m == null)
|
|
throw new ArgumentException (SR.Argument_InvalidHandle);
|
|
|
|
Type declaringType = m.DeclaringType;
|
|
if (declaringType != null && declaringType.IsGenericType)
|
|
throw new ArgumentException (String.Format (SR.Argument_MethodDeclaringTypeGeneric,
|
|
m, declaringType.GetGenericTypeDefinition ()));
|
|
|
|
return m;
|
|
}
|
|
|
|
public static MethodBase GetMethodFromHandle (RuntimeMethodHandle handle, RuntimeTypeHandle declaringType)
|
|
{
|
|
if (handle.IsNullHandle ())
|
|
throw new ArgumentException (SR.Argument_InvalidHandle);
|
|
MethodBase m = RuntimeMethodInfo.GetMethodFromHandleInternalType (handle.Value, declaringType.Value);
|
|
if (m == null)
|
|
throw new ArgumentException (SR.Argument_InvalidHandle);
|
|
return m;
|
|
}
|
|
|
|
[MethodImplAttribute (MethodImplOptions.InternalCall)]
|
|
public extern static MethodBase GetCurrentMethod ();
|
|
|
|
internal virtual ParameterInfo[] GetParametersNoCopy ()
|
|
{
|
|
return GetParametersInternal ();
|
|
}
|
|
|
|
internal virtual ParameterInfo[] GetParametersInternal ()
|
|
{
|
|
throw new NotImplementedException ();
|
|
}
|
|
|
|
internal virtual int GetParametersCount ()
|
|
{
|
|
throw new NotImplementedException ();
|
|
}
|
|
|
|
internal virtual Type GetParameterType (int pos)
|
|
{
|
|
throw new NotImplementedException ();
|
|
}
|
|
|
|
internal virtual Type[] GetParameterTypes ()
|
|
{
|
|
ParameterInfo[] paramInfo = GetParametersNoCopy ();
|
|
|
|
Type[] parameterTypes = new Type [paramInfo.Length];
|
|
for (int i = 0; i < paramInfo.Length; i++)
|
|
parameterTypes [i] = paramInfo [i].ParameterType;
|
|
|
|
return parameterTypes;
|
|
}
|
|
|
|
internal virtual int get_next_table_index (object obj, int table, int count)
|
|
{
|
|
throw new NotImplementedException ();
|
|
}
|
|
}
|
|
} |