# Class DynamicTypeInfoResolver

Namespace
  Npgsql.Internal

Assembly
  Npgsql.dll

    [Experimental("NPG9001")]
    [RequiresDynamicCode("A dynamic type info resolver may need to construct a generic converter for a statically unknown type.")]
    public abstract class DynamicTypeInfoResolver : IPgTypeInfoResolver

Inheritance
  object
  DynamicTypeInfoResolver

Implements
  IPgTypeInfoResolver

Inherited Members
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

## Methods

### CreateCollection(TypeInfoMappingCollection?)

    protected static DynamicTypeInfoResolver.DynamicMappingCollection CreateCollection(TypeInfoMappingCollection? baseCollection = null)

#### Parameters

`baseCollection` TypeInfoMappingCollection

#### Returns

DynamicTypeInfoResolver.DynamicMappingCollection

### GetMappings(Type?, DataTypeName, PgSerializerOptions)

    protected abstract DynamicTypeInfoResolver.DynamicMappingCollection? GetMappings(Type? type, DataTypeName dataTypeName, PgSerializerOptions options)

#### Parameters

`type` Type
`dataTypeName` DataTypeName
`options` PgSerializerOptions

#### Returns

DynamicTypeInfoResolver.DynamicMappingCollection

### GetTypeInfo(Type?, DataTypeName?, PgSerializerOptions)

Resolve a type info for a given type and data type name, at least one value will be non-null.

    public PgTypeInfo? GetTypeInfo(Type? type, DataTypeName? dataTypeName, PgSerializerOptions options)

#### Parameters

`type` Type

  The clr type being requested.

`dataTypeName` DataTypeName?

  The postgres type being requested.

`options` PgSerializerOptions

  Used for configuration state and Npgsql type info or PostgreSQL type catalog lookups.

#### Returns

PgTypeInfo

  A result, or null if there was no match.

### IsArrayDataTypeName(DataTypeName, PgSerializerOptions, out DataTypeName)

    protected static bool IsArrayDataTypeName(DataTypeName dataTypeName, PgSerializerOptions options, out DataTypeName elementDataTypeName)

#### Parameters

`dataTypeName` DataTypeName
`options` PgSerializerOptions
`elementDataTypeName` DataTypeName

#### Returns

bool

### IsArrayLikeType(Type, out Type?)

    protected static bool IsArrayLikeType(Type type, out Type? elementType)

#### Parameters

`type` Type
`elementType` Type

#### Returns

bool

### IsTypeOrNullableOfType(Type, Func<Type, bool>, out Type)

    protected static bool IsTypeOrNullableOfType(Type type, Func<Type, bool> predicate, out Type matchedType)

#### Parameters

`type` Type
`predicate` Func<Type, bool>
`matchedType` Type

#### Returns

bool