This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
+219
View File
@@ -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;
}
}