/// <summary> /// Converts a KnownTypeCode to a Type. /// </summary> /// <param name="knownTypeCode">The known type code to convert.</param> /// <param name="metadataRepository">The MetadataRepository of all known modules.</param> /// <returns>The type wrapper if its available, null otherwise.</returns> internal static IHandleTypeNamedWrapper?ToTypeWrapper(this KnownTypeCode knownTypeCode, MetadataRepository metadataRepository) { if (metadataRepository == null) { throw new ArgumentNullException(nameof(metadataRepository)); } var name = ToTypeName(knownTypeCode); return(metadataRepository.GetTypeByName(name)); }
/// <summary> /// Gets the type by a name if available. /// </summary> /// <param name="name">The name to check.</param> /// <param name="checkRepository">If we should check repository on fail.</param> /// <returns>The wrapper if available, null otherwise.</returns> public TypeWrapper?GetTypeByName(string?name, bool checkRepository = true) { if (string.IsNullOrWhiteSpace(name)) { return(null); } if (_namesToTypes.Value.TryGetValue(name !, out var item)) { return(item); } return(checkRepository ? MetadataRepository.GetTypeByName(name) : null); }