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)); }