Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.2.2-preview-583" />

 TypeInfo

public struct TypeInfo
public Assembly Assembly { get; }

public Type BaseType { get; }

public bool ContainsGenericParameters { get; }

public Type DeclaringType { get; }

public int GenericParameterPosition { get; }

public Type[] GenericTypeArguments { get; }

public Type[] GenericTypeParameters { get; }

public bool IsAbstract { get; }

public bool IsArray { get; }

public bool IsClass { get; }

public bool IsEnum { get; }

public bool IsGenericType { get; }

public bool IsGenericTypeDefinition { get; }

public bool IsInterface { get; }

public bool IsNestedPublic { get; }

public bool IsPrimitive { get; }

public bool IsPublic { get; }

public bool IsSealed { get; }

public bool IsValueType { get; }

public Type Type { get; }

public TypeInfo(Type type)

public Type AsType()

public IEnumerable<Attribute> GetCustomAttributes(Type attributeType, bool inherit)

public FieldInfo GetDeclaredField(string name)

public MethodInfo GetDeclaredMethod(string name)

public bool IsAssignableFrom(TypeInfo info)