Class TypeUtils
Namespace: Momentum.Extensions.EventMarkdownGenerator.Services
Assembly: Momentum.Extensions.EventMarkdownGenerator.dll
Shared utility methods for type checking and name formatting. Consolidates type-related logic from multiple service classes.
public static class TypeUtilsInheritance
Inherited Members
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Methods
CollectComplexTypesFromProperties(IEnumerable<EventPropertyMetadata>)
Collects all complex types from a collection of event properties.
public static HashSet<Type> CollectComplexTypesFromProperties(IEnumerable<EventPropertyMetadata> properties)Parameters
properties IEnumerable<EventPropertyMetadata>
Returns
CollectNestedComplexTypes(Type, HashSet<Type>)
Collects all nested complex types from a parent type recursively.
public static void CollectNestedComplexTypes(Type parentType, HashSet<Type> schemaTypes)Parameters
parentType Type
GetCleanTypeName(Type)
Gets the full namespace + type name without assembly qualification. This is useful for creating clean filenames and identifiers while preserving full type identification.
public static string GetCleanTypeName(Type type)Parameters
type Type
The type to get the clean name for
Returns
Full namespace + type name without assembly info (e.g., "System.Collections.Generic.Dictionary<System.String, System.Object>")
GetElementType(Type)
Gets the element type from a collection type (arrays or generic collections). For dictionaries, returns the value type (second generic argument).
public static Type? GetElementType(Type type)Parameters
type Type
Returns
Type?
GetElementTypeName(Type)
Gets the element type name from a collection type.
public static string? GetElementTypeName(Type type)Parameters
type Type
Returns
GetFriendlyTypeName(Type)
Gets a friendly display name for a type (e.g., "string" instead of "String"). Handles nullable types and generics appropriately.
public static string GetFriendlyTypeName(Type type)Parameters
type Type
Returns
IsCollectionType(Type)
Determines if a type is a collection type (arrays, lists, dictionaries, sets, etc.).
public static bool IsCollectionType(Type type)Parameters
type Type
Returns
IsComplexType(Type)
Determines if a type is complex (not a simple type, enum, or common framework type). Uses cycle detection to handle recursive type references.
public static bool IsComplexType(Type type)Parameters
type Type
Returns
IsPrimitiveType(Type)
Determines if a type is a simple value type (primitives, enums, common framework types).
public static bool IsPrimitiveType(Type type)Parameters
type Type
Returns
IsRequiredProperty(PropertyInfo)
Determines if a property is required based on RequiredAttribute or nullability context.
public static bool IsRequiredProperty(PropertyInfo property)Parameters
property PropertyInfo
The property to check.
Returns
True if the property is required; otherwise, false.