# SurrogateCodec&lt;TField, TSurrogate, TConverter&gt;.DeepCopy(TField, TField, CopyContext)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.serializers.surrogatecodec-3/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.serializers.surrogatecodec-3/methods/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Serializers/SurrogateCodec.cs#L141-L146)

```csharp
public void SurrogateCodec<TField, TSurrogate, DeepCopy(TField input, TField output, CopyContext context)
```

Clones members from `input` and copies them to `output`.

### Parameters

- `input` (`TField`): The input.
- `output` (`TField`): The output.
- `context` (`CopyContext`): The context.
