scripts
This commit is contained in:
@@ -0,0 +1,219 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
|
||||
namespace System.Reflection
|
||||
{
|
||||
// Token: 0x0200025B RID: 603
|
||||
internal class MonoCMethod : ConstructorInfo, ISerializable
|
||||
{
|
||||
// Token: 0x06001F62 RID: 8034 RVA: 0x000735A8 File Offset: 0x000717A8
|
||||
public override MethodImplAttributes GetMethodImplementationFlags()
|
||||
{
|
||||
return MonoMethodInfo.GetMethodImplementationFlags(this.mhandle);
|
||||
}
|
||||
|
||||
// Token: 0x06001F63 RID: 8035 RVA: 0x000735B8 File Offset: 0x000717B8
|
||||
public override ParameterInfo[] GetParameters()
|
||||
{
|
||||
return MonoMethodInfo.GetParametersInfo(this.mhandle, this);
|
||||
}
|
||||
|
||||
// Token: 0x06001F64 RID: 8036
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal extern object InternalInvoke(object obj, object[] parameters, out Exception exc);
|
||||
|
||||
// Token: 0x06001F65 RID: 8037 RVA: 0x000735C8 File Offset: 0x000717C8
|
||||
public override object Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)
|
||||
{
|
||||
if (binder == null)
|
||||
{
|
||||
binder = Binder.DefaultBinder;
|
||||
}
|
||||
ParameterInfo[] parameters2 = this.GetParameters();
|
||||
if ((parameters == null && parameters2.Length != 0) || (parameters != null && parameters.Length != parameters2.Length))
|
||||
{
|
||||
throw new TargetParameterCountException("parameters do not match signature");
|
||||
}
|
||||
if ((invokeAttr & BindingFlags.ExactBinding) == BindingFlags.Default)
|
||||
{
|
||||
if (!Binder.ConvertArgs(binder, parameters, parameters2, culture))
|
||||
{
|
||||
throw new ArgumentException("failed to convert parameters");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < parameters2.Length; i++)
|
||||
{
|
||||
if (parameters[i].GetType() != parameters2[i].ParameterType)
|
||||
{
|
||||
throw new ArgumentException("parameters do not match signature");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (obj == null && this.DeclaringType.ContainsGenericParameters)
|
||||
{
|
||||
throw new MemberAccessException("Cannot create an instance of " + this.DeclaringType + " because Type.ContainsGenericParameters is true.");
|
||||
}
|
||||
if ((invokeAttr & BindingFlags.CreateInstance) != BindingFlags.Default && this.DeclaringType.IsAbstract)
|
||||
{
|
||||
throw new MemberAccessException(string.Format("Cannot create an instance of {0} because it is an abstract class", this.DeclaringType));
|
||||
}
|
||||
Exception ex = null;
|
||||
object obj2 = null;
|
||||
try
|
||||
{
|
||||
obj2 = this.InternalInvoke(obj, parameters, out ex);
|
||||
}
|
||||
catch (MethodAccessException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
throw new TargetInvocationException(ex2);
|
||||
}
|
||||
if (ex != null)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
return (obj != null) ? null : obj2;
|
||||
}
|
||||
|
||||
// Token: 0x06001F66 RID: 8038 RVA: 0x00073750 File Offset: 0x00071950
|
||||
public override object Invoke(BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)
|
||||
{
|
||||
return this.Invoke(null, invokeAttr, binder, parameters, culture);
|
||||
}
|
||||
|
||||
// Token: 0x170005CF RID: 1487
|
||||
// (get) Token: 0x06001F67 RID: 8039 RVA: 0x00073760 File Offset: 0x00071960
|
||||
public override RuntimeMethodHandle MethodHandle
|
||||
{
|
||||
get
|
||||
{
|
||||
return new RuntimeMethodHandle(this.mhandle);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170005D0 RID: 1488
|
||||
// (get) Token: 0x06001F68 RID: 8040 RVA: 0x00073770 File Offset: 0x00071970
|
||||
public override MethodAttributes Attributes
|
||||
{
|
||||
get
|
||||
{
|
||||
return MonoMethodInfo.GetAttributes(this.mhandle);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170005D1 RID: 1489
|
||||
// (get) Token: 0x06001F69 RID: 8041 RVA: 0x00073780 File Offset: 0x00071980
|
||||
public override CallingConventions CallingConvention
|
||||
{
|
||||
get
|
||||
{
|
||||
return MonoMethodInfo.GetCallingConvention(this.mhandle);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170005D2 RID: 1490
|
||||
// (get) Token: 0x06001F6A RID: 8042 RVA: 0x00073790 File Offset: 0x00071990
|
||||
public override Type ReflectedType
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.reftype;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170005D3 RID: 1491
|
||||
// (get) Token: 0x06001F6B RID: 8043 RVA: 0x00073798 File Offset: 0x00071998
|
||||
public override Type DeclaringType
|
||||
{
|
||||
get
|
||||
{
|
||||
return MonoMethodInfo.GetDeclaringType(this.mhandle);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170005D4 RID: 1492
|
||||
// (get) Token: 0x06001F6C RID: 8044 RVA: 0x000737A8 File Offset: 0x000719A8
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.name != null)
|
||||
{
|
||||
return this.name;
|
||||
}
|
||||
return MonoMethod.get_name(this);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06001F6D RID: 8045 RVA: 0x000737C4 File Offset: 0x000719C4
|
||||
public override bool IsDefined(Type attributeType, bool inherit)
|
||||
{
|
||||
return MonoCustomAttrs.IsDefined(this, attributeType, inherit);
|
||||
}
|
||||
|
||||
// Token: 0x06001F6E RID: 8046 RVA: 0x000737D0 File Offset: 0x000719D0
|
||||
public override object[] GetCustomAttributes(bool inherit)
|
||||
{
|
||||
return MonoCustomAttrs.GetCustomAttributes(this, inherit);
|
||||
}
|
||||
|
||||
// Token: 0x06001F6F RID: 8047 RVA: 0x000737DC File Offset: 0x000719DC
|
||||
public override object[] GetCustomAttributes(Type attributeType, bool inherit)
|
||||
{
|
||||
return MonoCustomAttrs.GetCustomAttributes(this, attributeType, inherit);
|
||||
}
|
||||
|
||||
// Token: 0x06001F70 RID: 8048 RVA: 0x000737E8 File Offset: 0x000719E8
|
||||
public override MethodBody GetMethodBody()
|
||||
{
|
||||
return MethodBase.GetMethodBody(this.mhandle);
|
||||
}
|
||||
|
||||
// Token: 0x06001F71 RID: 8049 RVA: 0x000737F8 File Offset: 0x000719F8
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.Append("Void ");
|
||||
stringBuilder.Append(this.Name);
|
||||
stringBuilder.Append("(");
|
||||
ParameterInfo[] parameters = this.GetParameters();
|
||||
for (int i = 0; i < parameters.Length; i++)
|
||||
{
|
||||
if (i > 0)
|
||||
{
|
||||
stringBuilder.Append(", ");
|
||||
}
|
||||
stringBuilder.Append(parameters[i].ParameterType.Name);
|
||||
}
|
||||
if (this.CallingConvention == CallingConventions.Any)
|
||||
{
|
||||
stringBuilder.Append(", ...");
|
||||
}
|
||||
stringBuilder.Append(")");
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x06001F72 RID: 8050 RVA: 0x0007389C File Offset: 0x00071A9C
|
||||
public void GetObjectData(SerializationInfo info, StreamingContext context)
|
||||
{
|
||||
MemberInfoSerializationHolder.Serialize(info, this.Name, this.ReflectedType, this.ToString(), MemberTypes.Constructor);
|
||||
}
|
||||
|
||||
// Token: 0x04000AD1 RID: 2769
|
||||
internal IntPtr mhandle;
|
||||
|
||||
// Token: 0x04000AD2 RID: 2770
|
||||
private string name;
|
||||
|
||||
// Token: 0x04000AD3 RID: 2771
|
||||
private Type reftype;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user