# CopyContext Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.copycontext/)

## DeepCopy(T?) {#deepcopy-1-t-nullable-0ebeda17}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.copycontext/methods/deepcopy-1-t-nullable-0ebeda17/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Cloning/IDeepCopier.cs#L252-L258)

```csharp
public T? DeepCopy<T>(T? value)
```

Copies the provided value.

### Parameters

- `value` (`T?`): The value.

### Returns

A copy of the provided value.

## Dispose {#dispose-5c689b12}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.copycontext/methods/dispose-5c689b12/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Cloning/IDeepCopier.cs#L262)

```csharp
public void Dispose()
```

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

## RecordCopy(object, object) {#recordcopy-object-object-af021615}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.copycontext/methods/recordcopy-object-object-af021615/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Cloning/IDeepCopier.cs#L236-L237)

```csharp
public void RecordCopy(object original, object copy)
```

Records a copy of an object.

### Parameters

- `original` (`object`): The original value.
- `copy` (`object`): The copy of `original`.

## Reset {#reset-8c4b5e60}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.copycontext/methods/reset-8c4b5e60/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Cloning/IDeepCopier.cs#L242)

```csharp
public void Reset()
```

Resets this instance.

## TryGetCopy(object?, T?) {#trygetcopy-1-object-nullable-out-t-nullable-638cce84}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.copycontext/methods/trygetcopy-1-object-nullable-out-t-nullable-638cce84/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Serialization/Cloning/IDeepCopier.cs#L213-L226)

```csharp
public bool TryGetCopy<T>(object? original, out T? result)
```

Returns the previously recorded copy of the provided object, if it exists.

### Parameters

- `original` (`object?`): The original object.
- `result` (`T?`): The previously recorded copy of `original`.

### Returns

`true` if a copy of `original` has been recorded, `false` otherwise.
