Пример #1
0
        public unsafe bool TryGetOrCreateNamedTypeForMetadata(
            MetadataReader metadataReader,
            TypeDefinitionHandle typeDefHandle,
            out RuntimeTypeHandle runtimeTypeHandle)
        {
            if (TryGetNamedTypeForMetadata(metadataReader, typeDefHandle, out runtimeTypeHandle))
            {
                return true;
            }
#if SUPPORTS_NATIVE_METADATA_TYPE_LOADING
            IntPtr moduleHandle = ModuleList.Instance.GetModuleForMetadataReader(metadataReader);
            IntPtr runtimeTypeHandleAsIntPtr;
            if (TryResolveSingleMetadataFixup(
                moduleHandle,
                typeDefHandle.ToHandle(metadataReader).ToInt(),
                MetadataFixupKind.TypeHandle,
                out runtimeTypeHandleAsIntPtr))
            {
                runtimeTypeHandle = *(RuntimeTypeHandle*)&runtimeTypeHandleAsIntPtr;
                return true;
            }
#endif
            return false;
        }