public IMetadataTable GetOrCreate(MetadataTableType type) { var table = _tables[(int)type]; if (table == null) { table = MetadataTableFactory.Create(type); _tables[(int)type] = table; } return(table); }
public static IMetadataTable Create(MetadataTableType type, int count) { switch (type) { case MetadataTableType.Module: return(new ModuleTable(count)); case MetadataTableType.TypeRef: return(new TypeRefTable(count)); case MetadataTableType.TypeDef: return(new TypeDefTable(count)); case MetadataTableType.Field: return(new FieldTable(count)); case MetadataTableType.Method: return(new MethodTable(count)); case MetadataTableType.Param: return(new ParamTable(count)); case MetadataTableType.InterfaceImpl: return(new InterfaceImplTable(count)); case MetadataTableType.MemberRef: return(new MemberRefTable(count)); case MetadataTableType.Constant: return(new ConstantTable(count)); case MetadataTableType.CustomAttribute: return(new CustomAttributeTable(count)); case MetadataTableType.FieldMarshal: return(new FieldMarshalTable(count)); case MetadataTableType.DeclSecurity: return(new DeclSecurityTable(count)); case MetadataTableType.ClassLayout: return(new ClassLayoutTable(count)); case MetadataTableType.FieldLayout: return(new FieldLayoutTable(count)); case MetadataTableType.StandAloneSig: return(new StandAloneSigTable(count)); case MetadataTableType.EventMap: return(new EventMapTable(count)); case MetadataTableType.Event: return(new EventTable(count)); case MetadataTableType.PropertyMap: return(new PropertyMapTable(count)); case MetadataTableType.Property: return(new PropertyTable(count)); case MetadataTableType.MethodSemantics: return(new MethodSemanticsTable(count)); case MetadataTableType.MethodImpl: return(new MethodImplTable(count)); case MetadataTableType.ModuleRef: return(new ModuleRefTable(count)); case MetadataTableType.TypeSpec: return(new TypeSpecTable(count)); case MetadataTableType.ImplMap: return(new ImplMapTable(count)); case MetadataTableType.FieldRVA: return(new FieldRVATable(count)); case MetadataTableType.Assembly: return(new AssemblyTable(count)); case MetadataTableType.AssemblyRef: return(new AssemblyRefTable(count)); case MetadataTableType.File: return(new FileTable(count)); case MetadataTableType.ExportedType: return(new ExportedTypeTable(count)); case MetadataTableType.ManifestResource: return(new ManifestResourceTable(count)); case MetadataTableType.NestedClass: return(new NestedClassTable(count)); case MetadataTableType.GenericParam: return(new GenericParamTable(count)); case MetadataTableType.MethodSpec: return(new MethodSpecTable(count)); case MetadataTableType.GenericParamConstraint: return(new GenericParamConstraintTable(count)); default: throw new NotSupportedException(); } }
public TTable GetOrCreate <TTable>(MetadataTableType type) where TTable : IMetadataTable, new() { return(_heaps.Tables.GetOrCreate <TTable>(type)); }
public TTable GetOrCreate <TTable>(MetadataTableType type) where TTable : IMetadataTable { return((TTable)GetOrCreate(type)); }
private MetadataTokenType Convert(MetadataTableType tableType) { return((MetadataTokenType)((uint)tableType << 24)); }
private bool IsLargeTable(MetadataTableType tableType) { var table = _tables[(int)tableType]; return(table != null && table.Length > 0xffff); }