Table of Contents

Interface ITypeShapeVisitor

Namespace
PolyType.Abstractions
Assembly
PolyType.dll

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

public interface ITypeShapeVisitor

Methods

VisitConstructorParameter<TArgumentState, TParameterType>(IConstructorParameterShape<TArgumentState, TParameterType>, object?)

object? VisitConstructorParameter<TArgumentState, TParameterType>(IConstructorParameterShape<TArgumentState, TParameterType> parameterShape, object? state = null)

Parameters

parameterShape IConstructorParameterShape<TArgumentState, TParameterType>

The parameter shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

TArgumentState

The constructor argument state type used for aggregating constructor arguments.

TParameterType

The type of the visited constructor parameter.

VisitConstructor<TDeclaringType, TArgumentState>(IConstructorShape<TDeclaringType, TArgumentState>, object?)

object? VisitConstructor<TDeclaringType, TArgumentState>(IConstructorShape<TDeclaringType, TArgumentState> constructorShape, object? state = null)

Parameters

constructorShape IConstructorShape<TDeclaringType, TArgumentState>

The constructor shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

TDeclaringType

The declaring type of the visited constructor.

TArgumentState

The state type used for aggregating constructor arguments.

VisitDictionary<TDictionary, TKey, TValue>(IDictionaryShape<TDictionary, TKey, TValue>, object?)

Visits an IDictionaryShape<TDictionary, TKey, TValue> instance representing a dictionary type.

object? VisitDictionary<TDictionary, TKey, TValue>(IDictionaryShape<TDictionary, TKey, TValue> dictionaryShape, object? state = null) where TKey : notnull

Parameters

dictionaryShape IDictionaryShape<TDictionary, TKey, TValue>

The dictionary shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

TDictionary

The type of the visited dictionary.

TKey

The key type of the visited dictionary.

TValue

The value type of the visited dictionary.

VisitEnum<TEnum, TUnderlying>(IEnumTypeShape<TEnum, TUnderlying>, object?)

object? VisitEnum<TEnum, TUnderlying>(IEnumTypeShape<TEnum, TUnderlying> enumShape, object? state = null) where TEnum : struct, Enum

Parameters

enumShape IEnumTypeShape<TEnum, TUnderlying>

The enum shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

TEnum

The type of visited enum.

TUnderlying

The underlying type used by the enum.

VisitEnumerable<TEnumerable, TElement>(IEnumerableTypeShape<TEnumerable, TElement>, object?)

Visits an IEnumerableTypeShape<TEnumerable, TElement> instance representing an enumerable type.

object? VisitEnumerable<TEnumerable, TElement>(IEnumerableTypeShape<TEnumerable, TElement> enumerableShape, object? state = null)

Parameters

enumerableShape IEnumerableTypeShape<TEnumerable, TElement>

The enumerable shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

TEnumerable

The type of the visited enumerable.

TElement

The element type of the visited enumerable.

VisitNullable<T>(INullableTypeShape<T>, object?)

Visits an INullableTypeShape<T> instance representing the Nullable<T> type.

object? VisitNullable<T>(INullableTypeShape<T> nullableShape, object? state = null) where T : struct

Parameters

nullableShape INullableTypeShape<T>

The nullable shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

T

The element type of the visited nullable.

VisitObject<T>(IObjectTypeShape<T>, object?)

Visits an IObjectTypeShape<T> representing a simple type or object.

object? VisitObject<T>(IObjectTypeShape<T> objectShape, object? state = null)

Parameters

objectShape IObjectTypeShape<T>

The type shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

T

The object type represented by the shape instance.

VisitProperty<TDeclaringType, TPropertyType>(IPropertyShape<TDeclaringType, TPropertyType>, object?)

object? VisitProperty<TDeclaringType, TPropertyType>(IPropertyShape<TDeclaringType, TPropertyType> propertyShape, object? state = null)

Parameters

propertyShape IPropertyShape<TDeclaringType, TPropertyType>

The property shape to visit.

state object

Defines user-provided state.

Returns

object

The result produced by the visitor.

Type Parameters

TDeclaringType

The declaring type of the visited property.

TPropertyType

The property type of the visited property.