public ScriptExportType RetrieveType(TypeReference type) { if (type.IsArray) { return(RetrieveArray(type)); } if (type.IsGenericInstance) { return(RetrieveGeneric(type)); } if (type.Module != null) { TypeDefinition definition = type.Resolve(); if (definition != null) { if (definition.IsEnum) { return(RetrieveEnum(definition)); } if (ScriptExportMonoDelegate.IsDelegate(definition)) { return(RetrieveDelegate(definition)); } } } string fullname = ScriptExportMonoType.ToFullName(type); if (m_types.TryGetValue(fullname, out ScriptExportType exportType)) { return(exportType); } return(CreateType(type)); }
public ScriptExportDelegate RetrieveDelegate(TypeDefinition @delegate) { string fullname = ScriptExportMonoType.ToFullName(@delegate); if (m_delegates.TryGetValue(fullname, out ScriptExportDelegate exportDelegate)) { return(exportDelegate); } return(CreateDelegate(@delegate)); }
public ScriptExportEnum RetrieveEnum(TypeDefinition @enum) { string fullname = ScriptExportMonoType.ToFullName(@enum); if (m_enums.TryGetValue(fullname, out ScriptExportEnum exportEnum)) { return(exportEnum); } return(CreateEnum(@enum)); }
public ScriptExportGeneric RetrieveGeneric(TypeReference generic) { string fullname = ScriptExportMonoType.ToFullName(generic); if (m_generic.TryGetValue(fullname, out ScriptExportGeneric exportGeneric)) { return(exportGeneric); } return(CreateGeneric(generic)); }
public ScriptExportArray RetrieveArray(TypeReference array) { string fullname = ScriptExportMonoType.ToFullName(array); if (m_arrays.TryGetValue(fullname, out ScriptExportArray exportArray)) { return(exportArray); } return(CreateArray(array)); }