---
title: "Class StateFileSerializer | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Serialization/StateFileSerializer/"
---

# Class StateFileSerializer

> **Inheritance:** `System.Object` -> StateFileSerializer

###### **Namespace**: [Aurigma.DesignAtoms.Serialization](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Serialization.md)

###### **Assembly**: Aurigma.DesignAtoms.dll

```csharp title="Syntax"
public class StateFileSerializer : IStateFileSerializer
```

## Implements

* [Aurigma.DesignAtoms.Serialization.IStateFileSerializer](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Serialization/IStateFileSerializer.md)

## Inherited Members

* `System.Object.ToString`
* `System.Object.Equals(System.Object)`
* `System.Object.Equals(System.Object,System.Object)`
* `System.Object.ReferenceEquals(System.Object,System.Object)`
* `System.Object.GetHashCode`
* `System.Object.GetType`
* `System.Object.MemberwiseClone`

## Constructors

### StateFileSerializer

```csharp
public StateFileSerializer(ProductJsonConverter.Factory productConverterFactory, JsonColorConverter colorConverter, IMergeUtil mergeUtil)
```

## Methods

### Serialize

```csharp
public void Serialize(State state, Stream outStream, ISerializableStorage resourceStorage = null, bool convertUrlSourcesToStorage = false)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.State](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/State.md) | *state* |  |
| `System.IO.Stream` | *outStream* |  |
| `Aurigma.DesignAtoms.Cache.Abstractions.Interfaces.ISerializableStorage` | *resourceStorage* |  |
| `System.Boolean` | *convertUrlSourcesToStorage* |  |

### Deserialize

```csharp
public virtual State Deserialize(Stream stateStream, ISerializableStorage resourceStorage = null, bool optimizedState = false)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stateStream* |  |
| `Aurigma.DesignAtoms.Cache.Abstractions.Interfaces.ISerializableStorage` | *resourceStorage* |  |
| `System.Boolean` | *optimizedState* |  |

##### Returns

[Aurigma.DesignAtoms.Model.State](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/State.md)

### Deserialize&lt;TState, TUiConfig&gt;

```csharp
protected TState Deserialize<TState, TUiConfig>(Stream stateStream, ISerializableStorage resourceStorage = null, bool optimizedState = false, TUiConfig defaultUiConfig = null)
    where TState : State where TUiConfig : UiConfig
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.IO.Stream` | *stateStream* |  |
| `Aurigma.DesignAtoms.Cache.Abstractions.Interfaces.ISerializableStorage` | *resourceStorage* |  |
| `System.Boolean` | *optimizedState* |  |
| `<TUiConfig>` | *defaultUiConfig* |  |

##### Returns

`<TState>`

## Fields

### _logger

```csharp
protected static readonly Logger _logger
```

### DataSchemaKey

```csharp
public const string DataSchemaKey = "dataSchema"
```
