public ITypeInfo ReadType(MetadataSystem metadata) { var elementType = ReadElementType(); var typeCode = KnownType.GetTypeCode(elementType); if (typeCode != KnownTypeCode.None) { return(KnownType.GetType(typeCode)); } switch (elementType) { case ElementType.ValueType: return(ReadValueType(metadata)); case ElementType.Class: return(ReadClassType(metadata)); case ElementType.ByRef: return(ReadByReferenceType(metadata)); case ElementType.SizeArray: return(ReadVectorType(metadata)); case ElementType.Array: return(ReadArrayType(metadata)); case ElementType.Var: return(ReadTypeGenericParameter(metadata)); case ElementType.MVar: return(ReadMethodGenericParameter(metadata)); default: throw new NotSupportedException(); } }
private FieldDefinitionResolver(uint rid, FieldRow row, MetadataSystem metadata, TypeDefinition declaringType) { _token = new MetadataToken(MetadataTokenType.Field, rid); _row = row; _metadata = metadata; _declaringType = declaringType; }
private GenericParameter ReadTypeGenericParameter(MetadataSystem metadata) { // todo: implement generic parameter instantiation return(new GenericParameter( (int)ReadCompressedUInt32(), ElementType.Var)); }
private ParameterDefinitionResolver(uint rid, ParamRow row, MetadataSystem metadata, IMethodInfo method, ITypeInfo type) { _rid = rid; _row = row; _metadata = metadata; _method = method; _type = type; }
private AssemblyDefinition ResolveAssembly() { var entryPoint = _clrHeader.EntryPointToken; var reader = new MetadataReader(_heaps, entryPoint); var metadata = new MetadataSystem(reader); return(metadata.Assembly); }
private MethodDefinitionResolver(uint rid, MethodRow row, MetadataSystem metadata, TypeDefinition declaringType) { _token = new MetadataToken(MetadataTokenType.Method, rid); _row = row; _metadata = metadata; _declaringType = declaringType; _signature = new Lazy <MethodSignatureReader>(() => new MethodSignatureReader(_row, _metadata)); }
static void dumpSystem(RetsMetadata metadata) { MetadataSystem system = metadata.GetSystem(); Console.WriteLine("System ID: " + system.GetSystemID()); Console.WriteLine("Description: " + system.GetSystemDescription()); Console.WriteLine("Comment: " + system.GetComments()); }
private void ReadSignature(MethodRow row, MetadataSystem metadata) { var blob = metadata.ResolveBlob(row.Signature); var sig = new StandAloneSignature(blob); CallingConventions = (CallingConventions)sig.ReadByte(); ParamCount = sig.ReadCompressedUInt32(); ReturnType = sig.ReadType(metadata); ParamTypes = new ITypeInfo[ParamCount]; for (int index = 0; index < ParamCount; index++) { ParamTypes[index] = sig.ReadType(metadata); } }
public static IMemberReference Resolve(MemberRefRow row, MetadataSystem metadata) { var blob = metadata.ResolveBlob(row.Signature); blob.MoveTo(ByteBuffer.START_POSITION); var sig = blob.ReadByte(); blob.MoveTo(ByteBuffer.START_POSITION); if (sig == FIELD_SIG) { return(FieldReferenceResolver.Resolve(row, blob, metadata)); } return(MethodReferenceResolver.Resolve(row, blob, metadata)); }
public static MethodDefinition Resolve(uint rid, MethodRow row, MetadataSystem metadata, TypeDefinition declaringType) { var resolver = new MethodDefinitionResolver(rid, row, metadata, declaringType); return(new MethodDefinition(resolver)); }
private ModuleDefinitionResolver(uint rid, ModuleRow row, MetadataSystem metadata) { _token = new MetadataToken(MetadataTokenType.Module, rid); _row = row; _metadata = metadata; }
private ArrayType ReadArrayType(MetadataSystem metadata) { // todo: implement multidimensional array initialization throw new NotImplementedException(); }
private FieldReferenceResolver(MemberRefRow row, ByteBuffer signature, MetadataSystem metadata) { _row = row; _signature = signature; _metadata = metadata; }
public static AssemblyReference Resolve(uint rid, AssemblyRefRow row, MetadataSystem metadata) { var resolver = new AssemblyReferenceResolver(rid, row, metadata); return(new AssemblyReference(resolver)); }
private AssemblyReferenceResolver(uint rid, AssemblyRefRow row, MetadataSystem metadata) { _token = new MetadataToken(MetadataTokenType.AssemblyRef, rid); _row = row; _metadata = metadata; }
public static TypeDefinition Resolve(uint rid, TypeDefRow row, MetadataSystem metadata) { var resolver = new TypeDefinitionResolver(rid, row, metadata); return(new TypeDefinition(resolver)); }
private TypeDefinitionResolver(uint rid, TypeDefRow row, MetadataSystem metadata) { _token = new MetadataToken(MetadataTokenType.TypeDef, rid); _row = row; _metadata = metadata; }
public static CustomAttribute Resolve(CustomAttributeRow row, MetadataSystem metadata) { var resolver = new CustomAttributeResolver(row, metadata); return(new CustomAttribute(resolver)); }
private CustomAttributeResolver(CustomAttributeRow row, MetadataSystem metadata) { _row = row; _metadata = metadata; }
private AssemblyDefinitionResolver(uint rid, AssemblyRow row, MetadataSystem metadata) { _token = new MetadataToken(MetadataTokenType.Assembly, rid); _row = row; _metadata = metadata; }
public static AssemblyDefinition Resolve(uint rid, AssemblyRow row, MetadataSystem metadata) { var resolver = new AssemblyDefinitionResolver(rid, row, metadata); return(new AssemblyDefinition(resolver)); }
private TypeReferenceResolver(TypeRefRow row, MetadataSystem metadata) { _row = row; _metadata = metadata; }
private ByReferenceType ReadByReferenceType(MetadataSystem metadata) { var containedType = ReadType(metadata); return(new ByReferenceType(containedType)); }
public static TypeReference Resolve(TypeRefRow row, MetadataSystem metadata) { var resolver = new TypeReferenceResolver(row, metadata); return(new TypeReference(resolver)); }
private ArrayType ReadVectorType(MetadataSystem metadata) { var containedType = ReadType(metadata); return(new ArrayType(containedType)); }
public MethodSignatureReader(MethodRow row, MetadataSystem metadata) { ReadSignature(row, metadata); }
private ITypeInfo ReadClassType(MetadataSystem metadata) { var token = ReadTypeToken(); return(metadata.GetTypeInfo(token)); }
public static ParameterDefinition Resolve(uint rid, ParamRow row, MetadataSystem metadata, IMethodInfo method, ITypeInfo type) { var resolver = new ParameterDefinitionResolver(rid, row, metadata, method, type); return(new ParameterDefinition(resolver)); }
public static ModuleDefinition Resolve(uint rid, ModuleRow row, MetadataSystem metadata) { var resolver = new ModuleDefinitionResolver(rid, row, metadata); return(new ModuleDefinition(resolver)); }
public static FieldReference Resolve(MemberRefRow row, ByteBuffer signature, MetadataSystem metadata) { var resolver = new FieldReferenceResolver(row, signature, metadata); return(new FieldReference(resolver)); }