#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.Storages](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages 'Abblix\.Oidc\.Server\.Features\.Storages')

## CompositeBinarySerializer Class

A composite serializer that tries Protocol Buffers first, then falls back to JSON for unsupported types\.

```csharp
public class CompositeBinarySerializer : Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → CompositeBinarySerializer

Implements [IBinarySerializer](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IBinarySerializer')
### Constructors

## CompositeBinarySerializer\(ILogger\<CompositeBinarySerializer\>, IBinarySerializer, IBinarySerializer\) Constructor {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.CompositeBinarySerializer(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer_,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer)}

A composite serializer that tries Protocol Buffers first, then falls back to JSON for unsupported types\.

```csharp
public CompositeBinarySerializer(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer> logger, Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer protobufSerializer, Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer jsonSerializer);
```
#### Parameters

###### `logger` [Microsoft\.Extensions\.Logging\.ILogger&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1')[CompositeBinarySerializer](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer 'Abblix\.Oidc\.Server\.Features\.Storages\.CompositeBinarySerializer')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.CompositeBinarySerializer(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer_,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer).logger}

The logger for recording fallback warnings\.

###### `protobufSerializer` [IBinarySerializer](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IBinarySerializer') {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.CompositeBinarySerializer(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer_,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer).protobufSerializer}

The Protocol Buffers serializer\.

###### `jsonSerializer` [IBinarySerializer](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IBinarySerializer') {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.CompositeBinarySerializer(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer_,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer,Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer).jsonSerializer}

The JSON serializer fallback\.
### Methods

## CompositeBinarySerializer\.Deserialize\<T\>\(byte\[\]\) Method {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Deserialize_T_(byte[])}

Deserializes a binary representation using Protocol Buffers if supported, otherwise falls back to JSON\.

```csharp
public T? Deserialize<T>(byte[] bytes);
```
#### Type parameters

###### `T` {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Deserialize_T_(byte[]).T}

The type of the object to deserialize into\.
#### Parameters

###### `bytes` [System\.Byte](https://learn.microsoft.com/en-us/dotnet/api/system.byte 'System\.Byte')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array') {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Deserialize_T_(byte[]).bytes}

The binary representation to deserialize from\.

Implements [Deserialize&lt;T&gt;\(byte\[\]\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer#Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer.Deserialize_T_(byte[]) 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IBinarySerializer\.Deserialize\<T\>\(byte\[\]\)')

#### Returns
[T](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Deserialize_T_(byte[]).T 'Abblix\.Oidc\.Server\.Features\.Storages\.CompositeBinarySerializer\.Deserialize\<T\>\(byte\[\]\)\.T')  
The deserialized object of type [T](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Deserialize_T_(byte[]).T 'Abblix\.Oidc\.Server\.Features\.Storages\.CompositeBinarySerializer\.Deserialize\<T\>\(byte\[\]\)\.T')\.

## CompositeBinarySerializer\.Serialize\<T\>\(T\) Method {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Serialize_T_(T)}

Serializes an object using Protocol Buffers if supported, otherwise falls back to JSON\.

```csharp
public byte[] Serialize<T>(T obj);
```
#### Type parameters

###### `T` {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Serialize_T_(T).T}

The type of the object to serialize\.
#### Parameters

###### `obj` [T](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Serialize_T_(T).T 'Abblix\.Oidc\.Server\.Features\.Storages\.CompositeBinarySerializer\.Serialize\<T\>\(T\)\.T') {#Abblix.Oidc.Server.Features.Storages.CompositeBinarySerializer.Serialize_T_(T).obj}

The object to serialize\.

Implements [Serialize&lt;T&gt;\(T\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer#Abblix.Oidc.Server.Common.Interfaces.IBinarySerializer.Serialize_T_(T) 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IBinarySerializer\.Serialize\<T\>\(T\)')

#### Returns
[System\.Byte](https://learn.microsoft.com/en-us/dotnet/api/system.byte 'System\.Byte')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')  
A byte array representing the serialized object\.
