Files
2026-06-04 11:42:34 +02:00

1000 lines
27 KiB
C#

using System;
using System.Collections;
using System.Globalization;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Text;
namespace System.Reflection
{
// Token: 0x02000256 RID: 598
internal class MonoGenericClass : MonoType
{
// Token: 0x06001EFA RID: 7930 RVA: 0x00071E6C File Offset: 0x0007006C
internal MonoGenericClass()
: base(null)
{
throw new InvalidOperationException();
}
// Token: 0x06001EFB RID: 7931 RVA: 0x00071E7C File Offset: 0x0007007C
internal MonoGenericClass(TypeBuilder tb, Type[] args)
: base(null)
{
this.generic_type = tb;
this.type_arguments = args;
}
// Token: 0x06001EFC RID: 7932
[MethodImpl(MethodImplOptions.InternalCall)]
private extern void initialize(MethodInfo[] methods, ConstructorInfo[] ctors, FieldInfo[] fields, PropertyInfo[] properties, EventInfo[] events);
// Token: 0x06001EFD RID: 7933 RVA: 0x00071E94 File Offset: 0x00070094
private void initialize()
{
if (this.initialized)
{
return;
}
MonoGenericClass monoGenericClass = this.GetParentType() as MonoGenericClass;
if (monoGenericClass != null)
{
monoGenericClass.initialize();
}
EventInfo[] events_internal = this.generic_type.GetEvents_internal(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
this.event_count = events_internal.Length;
this.initialize(this.generic_type.GetMethods(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic), this.generic_type.GetConstructorsInternal(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic), this.generic_type.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic), this.generic_type.GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic), events_internal);
this.initialized = true;
}
// Token: 0x06001EFE RID: 7934 RVA: 0x00071F20 File Offset: 0x00070120
private Type GetParentType()
{
return this.InflateType(this.generic_type.BaseType);
}
// Token: 0x06001EFF RID: 7935 RVA: 0x00071F34 File Offset: 0x00070134
internal Type InflateType(Type type)
{
return this.InflateType(type, null);
}
// Token: 0x06001F00 RID: 7936 RVA: 0x00071F40 File Offset: 0x00070140
internal Type InflateType(Type type, Type[] method_args)
{
if (type == null)
{
return null;
}
if (!type.IsGenericParameter && !type.ContainsGenericParameters)
{
return type;
}
if (type.IsGenericParameter)
{
if (type.DeclaringMethod == null)
{
return this.type_arguments[type.GenericParameterPosition];
}
if (method_args != null)
{
return method_args[type.GenericParameterPosition];
}
return type;
}
else
{
if (type.IsPointer)
{
return this.InflateType(type.GetElementType(), method_args).MakePointerType();
}
if (type.IsByRef)
{
return this.InflateType(type.GetElementType(), method_args).MakeByRefType();
}
if (!type.IsArray)
{
Type[] genericArguments = type.GetGenericArguments();
for (int i = 0; i < genericArguments.Length; i++)
{
genericArguments[i] = this.InflateType(genericArguments[i], method_args);
}
Type type2 = ((!type.IsGenericTypeDefinition) ? type.GetGenericTypeDefinition() : type);
return type2.MakeGenericType(genericArguments);
}
if (type.GetArrayRank() > 1)
{
return this.InflateType(type.GetElementType(), method_args).MakeArrayType(type.GetArrayRank());
}
if (type.ToString().EndsWith("[*]", StringComparison.Ordinal))
{
return this.InflateType(type.GetElementType(), method_args).MakeArrayType(1);
}
return this.InflateType(type.GetElementType(), method_args).MakeArrayType();
}
}
// Token: 0x170005BA RID: 1466
// (get) Token: 0x06001F01 RID: 7937 RVA: 0x00072094 File Offset: 0x00070294
public override Type BaseType
{
get
{
Type parentType = this.GetParentType();
return (parentType == null) ? this.generic_type.BaseType : parentType;
}
}
// Token: 0x06001F02 RID: 7938 RVA: 0x000720C0 File Offset: 0x000702C0
private Type[] GetInterfacesInternal()
{
if (this.generic_type.interfaces == null)
{
return new Type[0];
}
Type[] array = new Type[this.generic_type.interfaces.Length];
for (int i = 0; i < array.Length; i++)
{
array[i] = this.InflateType(this.generic_type.interfaces[i]);
}
return array;
}
// Token: 0x06001F03 RID: 7939 RVA: 0x00072124 File Offset: 0x00070324
public override Type[] GetInterfaces()
{
if (!this.generic_type.IsCompilerContext)
{
throw new NotSupportedException();
}
return this.GetInterfacesInternal();
}
// Token: 0x06001F04 RID: 7940 RVA: 0x00072144 File Offset: 0x00070344
protected override bool IsValueTypeImpl()
{
return this.generic_type.IsValueType;
}
// Token: 0x06001F05 RID: 7941 RVA: 0x00072154 File Offset: 0x00070354
internal override MethodInfo GetMethod(MethodInfo fromNoninstanciated)
{
this.initialize();
if (!(fromNoninstanciated is MethodBuilder))
{
throw new InvalidOperationException("Inflating non MethodBuilder objects is not supported: " + fromNoninstanciated.GetType());
}
MethodBuilder methodBuilder = (MethodBuilder)fromNoninstanciated;
if (this.methods == null)
{
this.methods = new Hashtable();
}
if (!this.methods.ContainsKey(methodBuilder))
{
this.methods[methodBuilder] = new MethodOnTypeBuilderInst(this, methodBuilder);
}
return (MethodInfo)this.methods[methodBuilder];
}
// Token: 0x06001F06 RID: 7942 RVA: 0x000721DC File Offset: 0x000703DC
internal override ConstructorInfo GetConstructor(ConstructorInfo fromNoninstanciated)
{
this.initialize();
if (!(fromNoninstanciated is ConstructorBuilder))
{
throw new InvalidOperationException("Inflating non ConstructorBuilder objects is not supported: " + fromNoninstanciated.GetType());
}
ConstructorBuilder constructorBuilder = (ConstructorBuilder)fromNoninstanciated;
if (this.ctors == null)
{
this.ctors = new Hashtable();
}
if (!this.ctors.ContainsKey(constructorBuilder))
{
this.ctors[constructorBuilder] = new ConstructorOnTypeBuilderInst(this, constructorBuilder);
}
return (ConstructorInfo)this.ctors[constructorBuilder];
}
// Token: 0x06001F07 RID: 7943 RVA: 0x00072264 File Offset: 0x00070464
internal override FieldInfo GetField(FieldInfo fromNoninstanciated)
{
this.initialize();
if (!(fromNoninstanciated is FieldBuilder))
{
throw new InvalidOperationException("Inflating non FieldBuilder objects is not supported: " + fromNoninstanciated.GetType());
}
FieldBuilder fieldBuilder = (FieldBuilder)fromNoninstanciated;
if (this.fields == null)
{
this.fields = new Hashtable();
}
if (!this.fields.ContainsKey(fieldBuilder))
{
this.fields[fieldBuilder] = new FieldOnTypeBuilderInst(this, fieldBuilder);
}
return (FieldInfo)this.fields[fieldBuilder];
}
// Token: 0x06001F08 RID: 7944 RVA: 0x000722EC File Offset: 0x000704EC
public override MethodInfo[] GetMethods(BindingFlags bf)
{
if (!this.generic_type.IsCompilerContext)
{
throw new NotSupportedException();
}
ArrayList arrayList = new ArrayList();
Type type = this;
for (;;)
{
MonoGenericClass monoGenericClass = type as MonoGenericClass;
if (monoGenericClass != null)
{
arrayList.AddRange(monoGenericClass.GetMethodsInternal(bf, this));
}
else
{
if (!(type is TypeBuilder))
{
break;
}
arrayList.AddRange(type.GetMethods(bf));
}
if ((bf & BindingFlags.DeclaredOnly) != BindingFlags.Default)
{
goto Block_4;
}
type = type.BaseType;
if (type == null)
{
goto IL_91;
}
}
MonoType monoType = (MonoType)type;
arrayList.AddRange(monoType.GetMethodsByName(null, bf, false, this));
Block_4:
IL_91:
MethodInfo[] array = new MethodInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F09 RID: 7945 RVA: 0x000723A4 File Offset: 0x000705A4
private MethodInfo[] GetMethodsInternal(BindingFlags bf, MonoGenericClass reftype)
{
if (this.generic_type.num_methods == 0)
{
return new MethodInfo[0];
}
ArrayList arrayList = new ArrayList();
this.initialize();
for (int i = 0; i < this.generic_type.num_methods; i++)
{
MethodInfo methodInfo = this.generic_type.methods[i];
bool flag = false;
MethodAttributes attributes = methodInfo.Attributes;
if ((attributes & MethodAttributes.MemberAccessMask) == MethodAttributes.Public)
{
if ((bf & BindingFlags.Public) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.NonPublic) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
flag = false;
if ((attributes & MethodAttributes.Static) != MethodAttributes.PrivateScope)
{
if ((bf & BindingFlags.Static) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.Instance) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
methodInfo = TypeBuilder.GetMethod(this, methodInfo);
arrayList.Add(methodInfo);
}
}
}
MethodInfo[] array = new MethodInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F0A RID: 7946 RVA: 0x00072498 File Offset: 0x00070698
public override ConstructorInfo[] GetConstructors(BindingFlags bf)
{
if (!this.generic_type.IsCompilerContext)
{
throw new NotSupportedException();
}
ArrayList arrayList = new ArrayList();
Type type = this;
for (;;)
{
MonoGenericClass monoGenericClass = type as MonoGenericClass;
if (monoGenericClass != null)
{
arrayList.AddRange(monoGenericClass.GetConstructorsInternal(bf, this));
}
else
{
if (!(type is TypeBuilder))
{
break;
}
arrayList.AddRange(type.GetConstructors(bf));
}
if ((bf & BindingFlags.DeclaredOnly) != BindingFlags.Default)
{
goto Block_4;
}
type = type.BaseType;
if (type == null)
{
goto IL_8F;
}
}
MonoType monoType = (MonoType)type;
arrayList.AddRange(monoType.GetConstructors_internal(bf, this));
Block_4:
IL_8F:
ConstructorInfo[] array = new ConstructorInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F0B RID: 7947 RVA: 0x0007254C File Offset: 0x0007074C
private ConstructorInfo[] GetConstructorsInternal(BindingFlags bf, MonoGenericClass reftype)
{
if (this.generic_type.ctors == null)
{
return new ConstructorInfo[0];
}
ArrayList arrayList = new ArrayList();
this.initialize();
for (int i = 0; i < this.generic_type.ctors.Length; i++)
{
ConstructorInfo constructorInfo = this.generic_type.ctors[i];
bool flag = false;
MethodAttributes attributes = constructorInfo.Attributes;
if ((attributes & MethodAttributes.MemberAccessMask) == MethodAttributes.Public)
{
if ((bf & BindingFlags.Public) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.NonPublic) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
flag = false;
if ((attributes & MethodAttributes.Static) != MethodAttributes.PrivateScope)
{
if ((bf & BindingFlags.Static) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.Instance) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
arrayList.Add(TypeBuilder.GetConstructor(this, constructorInfo));
}
}
}
ConstructorInfo[] array = new ConstructorInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F0C RID: 7948 RVA: 0x00072638 File Offset: 0x00070838
public override FieldInfo[] GetFields(BindingFlags bf)
{
if (!this.generic_type.IsCompilerContext)
{
throw new NotSupportedException();
}
ArrayList arrayList = new ArrayList();
Type type = this;
for (;;)
{
MonoGenericClass monoGenericClass = type as MonoGenericClass;
if (monoGenericClass != null)
{
arrayList.AddRange(monoGenericClass.GetFieldsInternal(bf, this));
}
else
{
if (!(type is TypeBuilder))
{
break;
}
arrayList.AddRange(type.GetFields(bf));
}
if ((bf & BindingFlags.DeclaredOnly) != BindingFlags.Default)
{
goto Block_4;
}
type = type.BaseType;
if (type == null)
{
goto IL_8F;
}
}
MonoType monoType = (MonoType)type;
arrayList.AddRange(monoType.GetFields_internal(bf, this));
Block_4:
IL_8F:
FieldInfo[] array = new FieldInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F0D RID: 7949 RVA: 0x000726EC File Offset: 0x000708EC
private FieldInfo[] GetFieldsInternal(BindingFlags bf, MonoGenericClass reftype)
{
if (this.generic_type.num_fields == 0)
{
return new FieldInfo[0];
}
ArrayList arrayList = new ArrayList();
this.initialize();
for (int i = 0; i < this.generic_type.num_fields; i++)
{
FieldInfo fieldInfo = this.generic_type.fields[i];
bool flag = false;
FieldAttributes attributes = fieldInfo.Attributes;
if ((attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Public)
{
if ((bf & BindingFlags.Public) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.NonPublic) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
flag = false;
if ((attributes & FieldAttributes.Static) != FieldAttributes.PrivateScope)
{
if ((bf & BindingFlags.Static) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.Instance) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
arrayList.Add(TypeBuilder.GetField(this, fieldInfo));
}
}
}
FieldInfo[] array = new FieldInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F0E RID: 7950 RVA: 0x000727D8 File Offset: 0x000709D8
public override PropertyInfo[] GetProperties(BindingFlags bf)
{
if (!this.generic_type.IsCompilerContext)
{
throw new NotSupportedException();
}
ArrayList arrayList = new ArrayList();
Type type = this;
for (;;)
{
MonoGenericClass monoGenericClass = type as MonoGenericClass;
if (monoGenericClass != null)
{
arrayList.AddRange(monoGenericClass.GetPropertiesInternal(bf, this));
}
else
{
if (!(type is TypeBuilder))
{
break;
}
arrayList.AddRange(type.GetProperties(bf));
}
if ((bf & BindingFlags.DeclaredOnly) != BindingFlags.Default)
{
goto Block_4;
}
type = type.BaseType;
if (type == null)
{
goto IL_91;
}
}
MonoType monoType = (MonoType)type;
arrayList.AddRange(monoType.GetPropertiesByName(null, bf, false, this));
Block_4:
IL_91:
PropertyInfo[] array = new PropertyInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F0F RID: 7951 RVA: 0x00072890 File Offset: 0x00070A90
private PropertyInfo[] GetPropertiesInternal(BindingFlags bf, MonoGenericClass reftype)
{
if (this.generic_type.properties == null)
{
return new PropertyInfo[0];
}
ArrayList arrayList = new ArrayList();
this.initialize();
foreach (PropertyBuilder propertyInfo in this.generic_type.properties)
{
bool flag = false;
MethodInfo methodInfo = propertyInfo.GetGetMethod(true);
if (methodInfo == null)
{
methodInfo = propertyInfo.GetSetMethod(true);
}
if (methodInfo != null)
{
MethodAttributes attributes = methodInfo.Attributes;
if ((attributes & MethodAttributes.MemberAccessMask) == MethodAttributes.Public)
{
if ((bf & BindingFlags.Public) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.NonPublic) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
flag = false;
if ((attributes & MethodAttributes.Static) != MethodAttributes.PrivateScope)
{
if ((bf & BindingFlags.Static) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.Instance) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
arrayList.Add(new PropertyOnTypeBuilderInst(reftype, propertyInfo));
}
}
}
}
PropertyInfo[] array = new PropertyInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F10 RID: 7952 RVA: 0x000729A0 File Offset: 0x00070BA0
public override EventInfo[] GetEvents(BindingFlags bf)
{
if (!this.generic_type.IsCompilerContext)
{
throw new NotSupportedException();
}
ArrayList arrayList = new ArrayList();
Type type = this;
for (;;)
{
MonoGenericClass monoGenericClass = type as MonoGenericClass;
if (monoGenericClass != null)
{
arrayList.AddRange(monoGenericClass.GetEventsInternal(bf, this));
}
else
{
if (!(type is TypeBuilder))
{
break;
}
arrayList.AddRange(type.GetEvents(bf));
}
if ((bf & BindingFlags.DeclaredOnly) != BindingFlags.Default)
{
goto Block_4;
}
type = type.BaseType;
if (type == null)
{
goto IL_8E;
}
}
MonoType monoType = (MonoType)type;
arrayList.AddRange(monoType.GetEvents(bf));
Block_4:
IL_8E:
EventInfo[] array = new EventInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F11 RID: 7953 RVA: 0x00072A54 File Offset: 0x00070C54
private EventInfo[] GetEventsInternal(BindingFlags bf, MonoGenericClass reftype)
{
if (this.generic_type.events == null)
{
return new EventInfo[0];
}
this.initialize();
ArrayList arrayList = new ArrayList();
for (int i = 0; i < this.event_count; i++)
{
EventBuilder eventBuilder = this.generic_type.events[i];
bool flag = false;
MethodInfo methodInfo = eventBuilder.add_method;
if (methodInfo == null)
{
methodInfo = eventBuilder.remove_method;
}
if (methodInfo != null)
{
MethodAttributes attributes = methodInfo.Attributes;
if ((attributes & MethodAttributes.MemberAccessMask) == MethodAttributes.Public)
{
if ((bf & BindingFlags.Public) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.NonPublic) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
flag = false;
if ((attributes & MethodAttributes.Static) != MethodAttributes.PrivateScope)
{
if ((bf & BindingFlags.Static) != BindingFlags.Default)
{
flag = true;
}
}
else if ((bf & BindingFlags.Instance) != BindingFlags.Default)
{
flag = true;
}
if (flag)
{
arrayList.Add(new EventOnTypeBuilderInst(this, eventBuilder));
}
}
}
}
EventInfo[] array = new EventInfo[arrayList.Count];
arrayList.CopyTo(array);
return array;
}
// Token: 0x06001F12 RID: 7954 RVA: 0x00072B60 File Offset: 0x00070D60
public override Type[] GetNestedTypes(BindingFlags bf)
{
return this.generic_type.GetNestedTypes(bf);
}
// Token: 0x06001F13 RID: 7955 RVA: 0x00072B70 File Offset: 0x00070D70
public override bool IsAssignableFrom(Type c)
{
if (c == this)
{
return true;
}
Type[] interfacesInternal = this.GetInterfacesInternal();
if (c.IsInterface)
{
if (interfacesInternal == null)
{
return false;
}
foreach (Type type in interfacesInternal)
{
if (c.IsAssignableFrom(type))
{
return true;
}
}
return false;
}
else
{
Type parentType = this.GetParentType();
if (parentType == null)
{
return c == typeof(object);
}
return c.IsAssignableFrom(parentType);
}
}
// Token: 0x170005BB RID: 1467
// (get) Token: 0x06001F14 RID: 7956 RVA: 0x00072BF0 File Offset: 0x00070DF0
public override Type UnderlyingSystemType
{
get
{
return this;
}
}
// Token: 0x170005BC RID: 1468
// (get) Token: 0x06001F15 RID: 7957 RVA: 0x00072BF4 File Offset: 0x00070DF4
public override string Name
{
get
{
return this.generic_type.Name;
}
}
// Token: 0x170005BD RID: 1469
// (get) Token: 0x06001F16 RID: 7958 RVA: 0x00072C04 File Offset: 0x00070E04
public override string Namespace
{
get
{
return this.generic_type.Namespace;
}
}
// Token: 0x170005BE RID: 1470
// (get) Token: 0x06001F17 RID: 7959 RVA: 0x00072C14 File Offset: 0x00070E14
public override string FullName
{
get
{
return this.format_name(true, false);
}
}
// Token: 0x170005BF RID: 1471
// (get) Token: 0x06001F18 RID: 7960 RVA: 0x00072C20 File Offset: 0x00070E20
public override string AssemblyQualifiedName
{
get
{
return this.format_name(true, true);
}
}
// Token: 0x170005C0 RID: 1472
// (get) Token: 0x06001F19 RID: 7961 RVA: 0x00072C2C File Offset: 0x00070E2C
public override Guid GUID
{
get
{
throw new NotSupportedException();
}
}
// Token: 0x06001F1A RID: 7962 RVA: 0x00072C34 File Offset: 0x00070E34
private string format_name(bool full_name, bool assembly_qualified)
{
StringBuilder stringBuilder = new StringBuilder(this.generic_type.FullName);
bool isCompilerContext = this.generic_type.IsCompilerContext;
stringBuilder.Append("[");
for (int i = 0; i < this.type_arguments.Length; i++)
{
if (i > 0)
{
stringBuilder.Append(",");
}
string text = ((!full_name) ? this.type_arguments[i].ToString() : this.type_arguments[i].AssemblyQualifiedName);
if (text == null)
{
if (!isCompilerContext || !this.type_arguments[i].IsGenericParameter)
{
return null;
}
text = this.type_arguments[i].Name;
}
if (full_name)
{
stringBuilder.Append("[");
}
stringBuilder.Append(text);
if (full_name)
{
stringBuilder.Append("]");
}
}
stringBuilder.Append("]");
if (assembly_qualified)
{
stringBuilder.Append(", ");
stringBuilder.Append(this.generic_type.Assembly.FullName);
}
return stringBuilder.ToString();
}
// Token: 0x06001F1B RID: 7963 RVA: 0x00072D58 File Offset: 0x00070F58
public override string ToString()
{
return this.format_name(false, false);
}
// Token: 0x06001F1C RID: 7964 RVA: 0x00072D64 File Offset: 0x00070F64
public override Type MakeArrayType()
{
return new ArrayType(this, 0);
}
// Token: 0x06001F1D RID: 7965 RVA: 0x00072D70 File Offset: 0x00070F70
public override Type MakeArrayType(int rank)
{
if (rank < 1)
{
throw new IndexOutOfRangeException();
}
return new ArrayType(this, rank);
}
// Token: 0x06001F1E RID: 7966 RVA: 0x00072D88 File Offset: 0x00070F88
public override Type MakeByRefType()
{
return new ByRefType(this);
}
// Token: 0x06001F1F RID: 7967 RVA: 0x00072D90 File Offset: 0x00070F90
public override Type MakePointerType()
{
return new PointerType(this);
}
// Token: 0x06001F20 RID: 7968 RVA: 0x00072D98 File Offset: 0x00070F98
protected override bool IsCOMObjectImpl()
{
return false;
}
// Token: 0x06001F21 RID: 7969 RVA: 0x00072D9C File Offset: 0x00070F9C
protected override bool IsPrimitiveImpl()
{
return false;
}
// Token: 0x06001F22 RID: 7970 RVA: 0x00072DA0 File Offset: 0x00070FA0
protected override TypeAttributes GetAttributeFlagsImpl()
{
return this.generic_type.Attributes;
}
// Token: 0x06001F23 RID: 7971 RVA: 0x00072DB0 File Offset: 0x00070FB0
public override Type GetInterface(string name, bool ignoreCase)
{
throw new NotSupportedException();
}
// Token: 0x06001F24 RID: 7972 RVA: 0x00072DB8 File Offset: 0x00070FB8
public override EventInfo GetEvent(string name, BindingFlags bindingAttr)
{
if (!this.generic_type.IsCompilerContext)
{
throw new NotSupportedException();
}
foreach (EventInfo eventInfo in this.GetEvents(bindingAttr))
{
if (eventInfo.Name == name)
{
return eventInfo;
}
}
return null;
}
// Token: 0x06001F25 RID: 7973 RVA: 0x00072E10 File Offset: 0x00071010
public override FieldInfo GetField(string name, BindingFlags bindingAttr)
{
throw new NotSupportedException();
}
// Token: 0x06001F26 RID: 7974 RVA: 0x00072E18 File Offset: 0x00071018
public override MemberInfo[] GetMembers(BindingFlags bindingAttr)
{
throw new NotSupportedException();
}
// Token: 0x06001F27 RID: 7975 RVA: 0x00072E20 File Offset: 0x00071020
public override Type GetNestedType(string name, BindingFlags bindingAttr)
{
throw new NotSupportedException();
}
// Token: 0x06001F28 RID: 7976 RVA: 0x00072E28 File Offset: 0x00071028
public override object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters)
{
throw new NotSupportedException();
}
// Token: 0x06001F29 RID: 7977 RVA: 0x00072E30 File Offset: 0x00071030
protected override MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)
{
throw new NotSupportedException();
}
// Token: 0x06001F2A RID: 7978 RVA: 0x00072E38 File Offset: 0x00071038
protected override PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers)
{
throw new NotSupportedException();
}
// Token: 0x06001F2B RID: 7979 RVA: 0x00072E40 File Offset: 0x00071040
protected override ConstructorInfo GetConstructorImpl(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)
{
throw new NotSupportedException();
}
// Token: 0x06001F2C RID: 7980 RVA: 0x00072E48 File Offset: 0x00071048
public override bool IsDefined(Type attributeType, bool inherit)
{
throw new NotSupportedException();
}
// Token: 0x06001F2D RID: 7981 RVA: 0x00072E50 File Offset: 0x00071050
public override object[] GetCustomAttributes(bool inherit)
{
throw new NotSupportedException();
}
// Token: 0x06001F2E RID: 7982 RVA: 0x00072E58 File Offset: 0x00071058
public override object[] GetCustomAttributes(Type attributeType, bool inherit)
{
throw new NotSupportedException();
}
// Token: 0x04000AC1 RID: 2753
private const BindingFlags flags = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
// Token: 0x04000AC2 RID: 2754
internal TypeBuilder generic_type;
// Token: 0x04000AC3 RID: 2755
private Type[] type_arguments;
// Token: 0x04000AC4 RID: 2756
private bool initialized;
// Token: 0x04000AC5 RID: 2757
private Hashtable fields;
// Token: 0x04000AC6 RID: 2758
private Hashtable ctors;
// Token: 0x04000AC7 RID: 2759
private Hashtable methods;
// Token: 0x04000AC8 RID: 2760
private int event_count;
}
}