Show / Hide Table of Contents

Class TypeSlimVisitor<TType, TSimpleType, TArrayType, TStructuralType, TGenericDefinitionType, TGenericType, TGenericParameterType>

Visitor over the structure of a lightweight representation of a type.

Inheritance
System.Object
TypeSlimVisitor<TType, TSimpleType, TArrayType, TStructuralType, TGenericDefinitionType, TGenericType, TGenericParameterType>
Namespace: System.Reflection
Assembly: Nuqleon.Linq.Expressions.Bonsai.dll
Syntax
public abstract class TypeSlimVisitor<TType, TSimpleType, TArrayType, TStructuralType, TGenericDefinitionType, TGenericType, TGenericParameterType> : Object where TSimpleType : TType where TArrayType : TType where TStructuralType : TType where TGenericDefinitionType : TType where TGenericType : TType where TGenericParameterType : TType
Type Parameters
Name Description
TType

Type representing a type.

TSimpleType

Type representing a simple type.

TArrayType

Type representing an array type.

TStructuralType

Type representing a structural type.

TGenericDefinitionType

Type representing an open generic type definition.

TGenericType

Type representing a closed generic type.

TGenericParameterType

Type representing a generic parameter type.

Constructors

TypeSlimVisitor()

Declaration
protected TypeSlimVisitor()

Methods

MakeArrayType(ArrayTypeSlim, TType, Nullable<Int32>)

Constructs an array type with the specified element type and rank.

Declaration
protected abstract TArrayType MakeArrayType(ArrayTypeSlim type, TType elementType, Nullable<int> rank)
Parameters
Type Name Description
ArrayTypeSlim type

Original type.

TType elementType

Element type of the array.

System.Nullable<System.Int32> rank

Rank of the array, i.e. the number of dimensions. If the rank is null, the array is single-dimensional.

Returns
Type Description
TArrayType

Representation of an array type with the given element type and rank.

MakeGeneric(GenericTypeSlim, TGenericDefinitionType, ReadOnlyCollection<TType>)

Constructs a closed generic type with the specified type definition and type arguments.

Declaration
protected abstract TGenericType MakeGeneric(GenericTypeSlim type, TGenericDefinitionType typeDefinition, ReadOnlyCollection<TType> arguments)
Parameters
Type Name Description
GenericTypeSlim type

Original type.

TGenericDefinitionType typeDefinition

Generic type definition.

System.Collections.ObjectModel.ReadOnlyCollection<TType> arguments

Generic type arguments.

Returns
Type Description
TGenericType

Representation of a closed generic type with the given type definition and type parameters.

MakeGenericDefinition(GenericDefinitionTypeSlim)

Constructs an open generic type definition with the specified parameter types.

Declaration
protected abstract TGenericDefinitionType MakeGenericDefinition(GenericDefinitionTypeSlim type)
Parameters
Type Name Description
GenericDefinitionTypeSlim type

Original type.

Returns
Type Description
TGenericDefinitionType

Representation of an open generic type definition with the given parameter types.

MakeStructuralType(StructuralTypeSlim, IEnumerable<KeyValuePair<PropertyInfoSlim, TType>>, IEnumerable<KeyValuePair<PropertyInfoSlim, ReadOnlyCollection<TType>>>)

Constructs a structural type with the specified member types.

Declaration
protected abstract TStructuralType MakeStructuralType(StructuralTypeSlim type, IEnumerable<KeyValuePair<PropertyInfoSlim, TType>> propertyTypes, IEnumerable<KeyValuePair<PropertyInfoSlim, ReadOnlyCollection<TType>>> propertyIndexParameters)
Parameters
Type Name Description
StructuralTypeSlim type

Original type.

System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<PropertyInfoSlim, TType>> propertyTypes

Mapping from original properties to new property types.

System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<PropertyInfoSlim, System.Collections.ObjectModel.ReadOnlyCollection<TType>>> propertyIndexParameters

Mapping from original index parameters to new property types.

Returns
Type Description
TStructuralType

Representation of a structural type with the given members.

Visit(ReadOnlyCollection<TypeSlim>)

Visits a collection of types.

Declaration
public ReadOnlyCollection<TType> Visit(ReadOnlyCollection<TypeSlim> types)
Parameters
Type Name Description
System.Collections.ObjectModel.ReadOnlyCollection<TypeSlim> types

Types to visit.

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<TType>

Result of visiting the types.

Visit(TypeSlim)

Visits the specified type.

Declaration
public virtual TType Visit(TypeSlim type)
Parameters
Type Name Description
TypeSlim type

Type to visit.

Returns
Type Description
TType

Result of the visit.

VisitAndConvert<TResult>(ReadOnlyCollection<TypeSlim>)

Visits a collection of types.

Declaration
public ReadOnlyCollection<TResult> VisitAndConvert<TResult>(ReadOnlyCollection<TypeSlim> types)
    where TResult : TType
Parameters
Type Name Description
System.Collections.ObjectModel.ReadOnlyCollection<TypeSlim> types

Types to visit.

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<TResult>

Result of visiting the types.

Type Parameters
Name Description
TResult

VisitAndConvert<TResult>(TypeSlim)

Visits and converts a type.

Declaration
public TResult VisitAndConvert<TResult>(TypeSlim type)
    where TResult : TType
Parameters
Type Name Description
TypeSlim type

Type to visit.

Returns
Type Description
TResult

Result of visiting and converting the type.

Type Parameters
Name Description
TResult

Type representing the kind of type to convert to.

VisitArray(ArrayTypeSlim)

Visits an array type.

Declaration
protected virtual TArrayType VisitArray(ArrayTypeSlim type)
Parameters
Type Name Description
ArrayTypeSlim type

Type to visit.

Returns
Type Description
TArrayType

Result of the visit.

VisitGeneric(GenericTypeSlim)

Visits a close generic type.

Declaration
protected virtual TGenericType VisitGeneric(GenericTypeSlim type)
Parameters
Type Name Description
GenericTypeSlim type

Type to visit.

Returns
Type Description
TGenericType

Result of the visit.

VisitGenericDefinition(GenericDefinitionTypeSlim)

Visits an open generic type definition.

Declaration
protected virtual TGenericDefinitionType VisitGenericDefinition(GenericDefinitionTypeSlim type)
Parameters
Type Name Description
GenericDefinitionTypeSlim type

Type to visit.

Returns
Type Description
TGenericDefinitionType

Result of the visit.

VisitGenericParameter(GenericParameterTypeSlim)

Visits a generic parameter type.

Declaration
protected abstract TGenericParameterType VisitGenericParameter(GenericParameterTypeSlim type)
Parameters
Type Name Description
GenericParameterTypeSlim type

Type to visit.

Returns
Type Description
TGenericParameterType

Result of the visit.

VisitGenericTypeArguments(GenericTypeSlim)

Visits the generic type arguments of a generic type.

Declaration
public ReadOnlyCollection<TType> VisitGenericTypeArguments(GenericTypeSlim genericType)
Parameters
Type Name Description
GenericTypeSlim genericType

The generic type whose type arguments to visit.

Returns
Type Description
System.Collections.ObjectModel.ReadOnlyCollection<TType>

Result of visiting the generic type arguments.

VisitSimple(SimpleTypeSlim)

Visits a simple type.

Declaration
protected abstract TSimpleType VisitSimple(SimpleTypeSlim type)
Parameters
Type Name Description
SimpleTypeSlim type

Type to visit.

Returns
Type Description
TSimpleType

Result of the visit.

VisitStructural(StructuralTypeSlim)

Visits a structural type.

Declaration
protected virtual TStructuralType VisitStructural(StructuralTypeSlim type)
Parameters
Type Name Description
StructuralTypeSlim type

Type to visit.

Returns
Type Description
TStructuralType

Result of the visit.

In This Article
Back to top Generated by DocFX