protected override void ScanCore(MemberImportingOptions options, List <MemberImporter> importList) { //Type var type = (TypeSpecification)Member; //Checks if the type is a generic instance type MemberImporter importer; if (type is GenericInstanceType) { importer = new GenericInstanceTypeImporter(type, Session.Destination, Session).Scan(options); importList.Add(importer); importer.ImportFinished += t => retType = (TypeSpecification)t; return; } //Creates the importer for the element type importer = Helpers.CreateTypeImporter(type.ElementType, Session, importList, options); //Switches on the metadata type of the specification switch (type.MetadataType) { case MetadataType.Pointer: importer.ImportFinished += t => retType = new PointerType((TypeReference)t); break; case MetadataType.ByReference: importer.ImportFinished += t => retType = new ByReferenceType((TypeReference)t); break; default: throw new NotImplementedException(); } }
protected override void ScanCore(MemberImportingOptions options, List<MemberImporter> importList) { //Type var type = (TypeSpecification)Member; //Checks if the type is a generic instance type MemberImporter importer; if (type is GenericInstanceType) { importer = new GenericInstanceTypeImporter(type, Session.Destination, Session).Scan(options); importList.Add(importer); importer.ImportFinished += t => retType = (TypeSpecification)t; return; } //Creates the importer for the element type importer = Helpers.CreateTypeImporter(type.ElementType, Session, importList, options); //Switches on the metadata type of the specification switch (type.MetadataType) { case MetadataType.Pointer: importer.ImportFinished += t => retType = new PointerType((TypeReference)t); break; case MetadataType.ByReference: importer.ImportFinished += t => retType = new ByReferenceType((TypeReference)t); break; default: throw new NotImplementedException(); } }