# Class PgConverterResolver

Namespace
  Npgsql.Internal

Assembly
  Npgsql.dll

    [Experimental("NPG9001")]
    public abstract class PgConverterResolver

Inheritance
  object
  PgConverterResolver

Derived
  PgConverterResolver<T>

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

## Methods

### CreateUnsupportedPgTypeIdException(PgTypeId)

    protected ArgumentOutOfRangeException CreateUnsupportedPgTypeIdException(PgTypeId pgTypeId)

#### Parameters

`pgTypeId` PgTypeId

#### Returns

ArgumentOutOfRangeException

### Get(Field)

Gets the appropriate converter to read with based on the given field info.

    public virtual PgConverterResolution Get(Field field)

#### Parameters

`field` Field

#### Returns

PgConverterResolution

  The converter resolution.

#### Remarks

Implementations should not return new instances of the possible converters that can be returned, instead its expected these are cached once used. Array or other collection converters depend on this to cache their own converter - which wraps the element converter - with the cache key being the element converter reference.

### GetDefault(PgTypeId?)

Gets the appropriate converter solely based on PgTypeId.

    public abstract PgConverterResolution GetDefault(PgTypeId? pgTypeId)

#### Parameters

`pgTypeId` PgTypeId?

#### Returns

PgConverterResolution

  The converter resolution.

#### Remarks

Implementations should not return new instances of the possible converters that can be returned, instead its expected these are cached once used. Array or other collection converters depend on this to cache their own converter - which wraps the element converter - with the cache key being the element converter reference.