Table of Contents

Namespace PolyType.Abstractions

Classes

AssociatedTypeAttributeAttribute

An attribute to apply to other attribute classes that accept one or more Type arguments that should be considered associated types to whatever type the other attribute is applied to.

TypeShapeProvider

Helper methods for extracting ITypeShape instances from shape providers.

TypeShapeVisitor

Provides a visitor for strongly-typed traversal of .NET types.

Interfaces

IConstructorShape

Provides a strongly typed shape model for a given .NET constructor.

IConstructorShape<TDeclaringType, TArgumentState>

Provides a strongly typed shape model for a given .NET constructor.

IDictionaryTypeShape

Provides a strongly typed shape model for a .NET type that is a dictionary.

IDictionaryTypeShape<TDictionary, TKey, TValue>

Provides a strongly typed shape model for a .NET type that is a dictionary.

IEnumTypeShape

Provides a strongly typed shape model for a .NET enum.

IEnumTypeShape<TEnum, TUnderlying>

Provides a strongly typed shape model for a .NET enum.

IEnumerableTypeShape

Provides a strongly typed shape model for a .NET type that is enumerable.

IEnumerableTypeShape<TEnumerable, TElement>

Provides a strongly typed shape model for a .NET type that is enumerable.

IObjectTypeShape

Provides a strongly typed shape model for a .NET object.

IObjectTypeShape<T>

Provides a strongly typed shape model for a .NET object.

IOptionalTypeShape

Provides a strongly typed shape model for optional types.

IOptionalTypeShape<TOptional, TElement>

Provides a strongly typed shape model for optional types.

IParameterShape

Provides a strongly typed shape model for a given .NET method parameter, representing either an actual parameter or a member initializer.

IParameterShape<TArgumentState, TParameterType>

Provides a strongly typed shape model for a given .NET method parameter, representing either an actual method parameter or a required or init-only property.

IPropertyShape

Provides a strongly typed shape model for a given .NET instance property or field.

IPropertyShape<TDeclaringType, TPropertyType>

Provides a strongly typed shape model for a given .NET instance property or field.

ISurrogateTypeShape

Provides a strongly typed shape model for a .NET type that employs a surrogate type.

ISurrogateTypeShape<T, TSurrogate>

Provides a strongly typed shape model for a .NET type that employs a surrogate type.

ITypeShape

Provides a strongly typed shape model for a given .NET type.

ITypeShapeFunc

A generic function used to unpack ITypeShape instances.

ITypeShape<T>

Provides a strongly typed shape model for a given .NET type.

IUnionCaseShape

Provides a strongly typed shape model for a union case in a discriminated union type.

IUnionCaseShape<TUnionCase, TUnion>

Provides a strongly typed shape model for a union case in a discriminated union type.

IUnionTypeShape

Provides a strongly typed shape model for a .NET type encoding a discriminated union.

IUnionTypeShape<TUnion>

Provides a strongly typed shape model for a .NET type encoding a discriminated union.

Enums

CollectionConstructionStrategy

The construction strategy use for a given IEnumerableTypeShape or IDictionaryTypeShape.

ParameterKind

Specifies the kind of method parameter.

Delegates

Constructor<TArgumentState, TDeclaringType>

Delegate representing a parameterized constructor.

Getter<TDeclaringType, TPropertyType>

Delegate representing a property/field getter.

OptionDeconstructor<TOptional, TElement>

Delegate deconstructing an optional type.

Setter<TDeclaringType, TPropertyType>

Delegate representing a property/field setter.

SpanConstructor<T, TDeclaringType>

Delegate representing a constructor that accepts a span of values.