Example #1
0
        public static MetadataToken ResolveToken(IMetadataEntity entity, MetadataBuilder builder)
        {
            var resolver = new MetadataTokenResolver(builder);

            entity.Accept(resolver);
            return(resolver._token);
        }
 private MetadataBuilder(AssemblyDefinition assemblyDef)
 {
     _assemblyDef     = assemblyDef;
     _heaps           = new MetadataHeaps();
     _ilCode          = new ILCodeWriter(this);
     _writeBlob       = Func.Memoize <ByteBuffer, uint>(_heaps.Blobs.WriteBlob);
     _writeGuid       = Func.Memoize <Guid, uint>(_heaps.Guids.WriteGuid);
     _writeString     = Func.Memoize <string, uint>(_heaps.Strings.WriteString, StringComparer.Ordinal);
     _writeUserString = Func.Memoize <string, uint>(_heaps.UserStrings.WriteString, StringComparer.Ordinal);
     _resolveToken    = Func.Memoize <IMetadataEntity, MetadataToken>(entity => MetadataTokenResolver.ResolveToken(entity, this));
 }