# Class TypeInfoMappingCollection

Namespace
  Npgsql.Internal

Assembly
  Npgsql.dll

    [Experimental("NPG9001")]
    public sealed class TypeInfoMappingCollection

Inheritance
  object
  TypeInfoMappingCollection

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

## Constructors

### TypeInfoMappingCollection()

    public TypeInfoMappingCollection()

### TypeInfoMappingCollection(TypeInfoMappingCollection)

    public TypeInfoMappingCollection(TypeInfoMappingCollection baseCollection)

#### Parameters

`baseCollection` TypeInfoMappingCollection

### TypeInfoMappingCollection(IEnumerable<TypeInfoMapping>)

    public TypeInfoMappingCollection(IEnumerable<TypeInfoMapping> items)

#### Parameters

`items` IEnumerable<TypeInfoMapping>

### TypeInfoMappingCollection(int)

    public TypeInfoMappingCollection(int capacity = 0)

#### Parameters

`capacity` int

## Properties

### Items

    public IReadOnlyList<TypeInfoMapping> Items { get; }

#### Property Value

IReadOnlyList<TypeInfoMapping>

## Methods

### Add(TypeInfoMapping)

    public void Add(TypeInfoMapping mapping)

#### Parameters

`mapping` TypeInfoMapping

### AddArrayType<TElement>(TypeInfoMapping)

    public void AddArrayType<TElement>(TypeInfoMapping elementMapping) where TElement : class

#### Parameters

`elementMapping` TypeInfoMapping

#### Type Parameters

`TElement`

### AddArrayType<TElement>(TypeInfoMapping, bool)

    public void AddArrayType<TElement>(TypeInfoMapping elementMapping, bool suppressObjectMapping) where TElement : class

#### Parameters

`elementMapping` TypeInfoMapping
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddArrayType<TElement>(string)

    public void AddArrayType<TElement>(string elementDataTypeName) where TElement : class

#### Parameters

`elementDataTypeName` string

#### Type Parameters

`TElement`

### AddArrayType<TElement>(string, bool)

    public void AddArrayType<TElement>(string elementDataTypeName, bool suppressObjectMapping) where TElement : class

#### Parameters

`elementDataTypeName` string
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddPolymorphicResolverArrayType(TypeInfoMapping, Func<PgSerializerOptions, Func<PgConverterResolution, PgConverter>>)

    public void AddPolymorphicResolverArrayType(TypeInfoMapping elementMapping, Func<PgSerializerOptions, Func<PgConverterResolution, PgConverter>> elementToArrayConverterFactory)

#### Parameters

`elementMapping` TypeInfoMapping
`elementToArrayConverterFactory` Func<PgSerializerOptions, Func<PgConverterResolution, PgConverter>>

### AddPolymorphicResolverArrayType(string, Func<PgSerializerOptions, Func<PgConverterResolution, PgConverter>>)

    public void AddPolymorphicResolverArrayType(string elementDataTypeName, Func<PgSerializerOptions, Func<PgConverterResolution, PgConverter>> elementToArrayConverterFactory)

#### Parameters

`elementDataTypeName` string
`elementToArrayConverterFactory` Func<PgSerializerOptions, Func<PgConverterResolution, PgConverter>>

### AddRange(TypeInfoMappingCollection)

    public void AddRange(TypeInfoMappingCollection collection)

#### Parameters

`collection` TypeInfoMappingCollection

### AddResolverArrayType<TElement>(TypeInfoMapping)

    public void AddResolverArrayType<TElement>(TypeInfoMapping elementMapping) where TElement : class

#### Parameters

`elementMapping` TypeInfoMapping

#### Type Parameters

`TElement`

### AddResolverArrayType<TElement>(TypeInfoMapping, bool)

    public void AddResolverArrayType<TElement>(TypeInfoMapping elementMapping, bool suppressObjectMapping) where TElement : class

#### Parameters

`elementMapping` TypeInfoMapping
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddResolverArrayType<TElement>(string)

    public void AddResolverArrayType<TElement>(string elementDataTypeName) where TElement : class

#### Parameters

`elementDataTypeName` string

#### Type Parameters

`TElement`

### AddResolverArrayType<TElement>(string, bool)

    public void AddResolverArrayType<TElement>(string elementDataTypeName, bool suppressObjectMapping) where TElement : class

#### Parameters

`elementDataTypeName` string
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddResolverStructArrayType<TElement>(TypeInfoMapping, TypeInfoMapping)

    public void AddResolverStructArrayType<TElement>(TypeInfoMapping elementMapping, TypeInfoMapping nullableElementMapping) where TElement : struct

#### Parameters

`elementMapping` TypeInfoMapping
`nullableElementMapping` TypeInfoMapping

#### Type Parameters

`TElement`

### AddResolverStructArrayType<TElement>(TypeInfoMapping, TypeInfoMapping, bool)

    public void AddResolverStructArrayType<TElement>(TypeInfoMapping elementMapping, TypeInfoMapping nullableElementMapping, bool suppressObjectMapping) where TElement : struct

#### Parameters

`elementMapping` TypeInfoMapping
`nullableElementMapping` TypeInfoMapping
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddResolverStructArrayType<TElement>(string)

    public void AddResolverStructArrayType<TElement>(string elementDataTypeName) where TElement : struct

#### Parameters

`elementDataTypeName` string

#### Type Parameters

`TElement`

### AddResolverStructArrayType<TElement>(string, bool)

    public void AddResolverStructArrayType<TElement>(string elementDataTypeName, bool suppressObjectMapping) where TElement : struct

#### Parameters

`elementDataTypeName` string
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddResolverStructType<T>(string, TypeInfoFactory, MatchRequirement)

    public void AddResolverStructType<T>(string dataTypeName, TypeInfoFactory createInfo, MatchRequirement matchRequirement) where T : struct

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`matchRequirement` MatchRequirement

#### Type Parameters

`T`

### AddResolverStructType<T>(string, TypeInfoFactory, bool)

    public void AddResolverStructType<T>(string dataTypeName, TypeInfoFactory createInfo, bool isDefault = false) where T : struct

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`isDefault` bool

#### Type Parameters

`T`

### AddResolverStructType<T>(string, TypeInfoFactory, Func<TypeInfoMapping, TypeInfoMapping>?)

    public void AddResolverStructType<T>(string dataTypeName, TypeInfoFactory createInfo, Func<TypeInfoMapping, TypeInfoMapping>? configure) where T : struct

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`configure` Func<TypeInfoMapping, TypeInfoMapping>

#### Type Parameters

`T`

### AddResolverType<T>(string, TypeInfoFactory, MatchRequirement)

    public void AddResolverType<T>(string dataTypeName, TypeInfoFactory createInfo, MatchRequirement matchRequirement) where T : class

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`matchRequirement` MatchRequirement

#### Type Parameters

`T`

### AddResolverType<T>(string, TypeInfoFactory, bool)

    public void AddResolverType<T>(string dataTypeName, TypeInfoFactory createInfo, bool isDefault = false) where T : class

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`isDefault` bool

#### Type Parameters

`T`

### AddResolverType<T>(string, TypeInfoFactory, Func<TypeInfoMapping, TypeInfoMapping>?)

    public void AddResolverType<T>(string dataTypeName, TypeInfoFactory createInfo, Func<TypeInfoMapping, TypeInfoMapping>? configure) where T : class

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`configure` Func<TypeInfoMapping, TypeInfoMapping>

#### Type Parameters

`T`

### AddStructArrayType<TElement>(TypeInfoMapping, TypeInfoMapping)

    public void AddStructArrayType<TElement>(TypeInfoMapping elementMapping, TypeInfoMapping nullableElementMapping) where TElement : struct

#### Parameters

`elementMapping` TypeInfoMapping
`nullableElementMapping` TypeInfoMapping

#### Type Parameters

`TElement`

### AddStructArrayType<TElement>(TypeInfoMapping, TypeInfoMapping, bool)

    public void AddStructArrayType<TElement>(TypeInfoMapping elementMapping, TypeInfoMapping nullableElementMapping, bool suppressObjectMapping) where TElement : struct

#### Parameters

`elementMapping` TypeInfoMapping
`nullableElementMapping` TypeInfoMapping
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddStructArrayType<TElement>(string)

    public void AddStructArrayType<TElement>(string elementDataTypeName) where TElement : struct

#### Parameters

`elementDataTypeName` string

#### Type Parameters

`TElement`

### AddStructArrayType<TElement>(string, bool)

    public void AddStructArrayType<TElement>(string elementDataTypeName, bool suppressObjectMapping) where TElement : struct

#### Parameters

`elementDataTypeName` string
`suppressObjectMapping` bool

#### Type Parameters

`TElement`

### AddStructType<T>(string, TypeInfoFactory, MatchRequirement)

    public void AddStructType<T>(string dataTypeName, TypeInfoFactory createInfo, MatchRequirement matchRequirement) where T : struct

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`matchRequirement` MatchRequirement

#### Type Parameters

`T`

### AddStructType<T>(string, TypeInfoFactory, bool)

    public void AddStructType<T>(string dataTypeName, TypeInfoFactory createInfo, bool isDefault = false) where T : struct

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`isDefault` bool

#### Type Parameters

`T`

### AddStructType<T>(string, TypeInfoFactory, Func<TypeInfoMapping, TypeInfoMapping>?)

    public void AddStructType<T>(string dataTypeName, TypeInfoFactory createInfo, Func<TypeInfoMapping, TypeInfoMapping>? configure) where T : struct

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`configure` Func<TypeInfoMapping, TypeInfoMapping>

#### Type Parameters

`T`

### AddType<T>(string, TypeInfoFactory, MatchRequirement)

    public void AddType<T>(string dataTypeName, TypeInfoFactory createInfo, MatchRequirement matchRequirement) where T : class

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`matchRequirement` MatchRequirement

#### Type Parameters

`T`

### AddType<T>(string, TypeInfoFactory, bool)

    public void AddType<T>(string dataTypeName, TypeInfoFactory createInfo, bool isDefault = false) where T : class

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`isDefault` bool

#### Type Parameters

`T`

### AddType<T>(string, TypeInfoFactory, Func<TypeInfoMapping, TypeInfoMapping>?)

    public void AddType<T>(string dataTypeName, TypeInfoFactory createInfo, Func<TypeInfoMapping, TypeInfoMapping>? configure) where T : class

#### Parameters

`dataTypeName` string
`createInfo` TypeInfoFactory
`configure` Func<TypeInfoMapping, TypeInfoMapping>

#### Type Parameters

`T`

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

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

#### Parameters

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

#### Returns

PgTypeInfo

### IsArrayLikeType(Type, out Type?)

    [UnconditionalSuppressMessage("Trimming", "IL2070", Justification = "Checking for IList<T> implementing types requires interface list enumeration which isn't compatible with trimming. However as long as a concrete IList<T> is rooted somewhere in the app, for instance through an `AddArrayType<T>(...)` mapping, every implementation must keep it.")]
    public static bool IsArrayLikeType(Type type, out Type? elementType)

#### Parameters

`type` Type
`elementType` Type

#### Returns

bool