# IDeepCopierProvider Methods

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

## GetBaseCopier {#getbasecopier-1-67723178}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.ideepcopierprovider/methods/getbasecopier-1-67723178/)

```csharp
public abstract IBaseCopier<T> GetBaseCopier<T>()
```

Gets a base type copier capable of copying instances of type `T`.

### Returns

A base type copier capable of copying instances of type `T`.

## GetDeepCopier(Type) {#getdeepcopier-system-type-f3294d2c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.ideepcopierprovider/methods/getdeepcopier-system-type-f3294d2c/)

```csharp
public abstract IDeepCopier GetDeepCopier(Type type)
```

Gets a deep copier capable of copying instances of type `type`.

### Parameters

- `type` (`Type`): The type supported by the returned copier.

### Returns

A deep copier capable of copying instances of type `type`.

## GetDeepCopier {#getdeepcopier-1-345ee47a}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.ideepcopierprovider/methods/getdeepcopier-1-345ee47a/)

```csharp
public abstract IDeepCopier<T> GetDeepCopier<T>()
```

Gets a deep copier capable of copying instances of type `T`.

### Returns

A deep copier capable of copying instances of type `T`.

## TryGetDeepCopier {#trygetdeepcopier-1-5ae7e6aa}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.ideepcopierprovider/methods/trygetdeepcopier-1-5ae7e6aa/)

```csharp
public abstract IDeepCopier<T>? TryGetDeepCopier<T>()
```

Gets a deep copier capable of copying instances of type `T`, or returns `null` if an appropriate copier was not found.

### Returns

A deep copier capable of copying instances of type `T`, or `null` if an appropriate copier was not found.

## TryGetDeepCopier(Type) {#trygetdeepcopier-system-type-f466a36c}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.serialization/orleans.serialization.cloning.ideepcopierprovider/methods/trygetdeepcopier-system-type-f466a36c/)

```csharp
public abstract IDeepCopier? TryGetDeepCopier(Type type)
```

Gets a deep copier capable of copying instances of type `type`, or returns `null` if an appropriate copier was not found.

### Parameters

- `type` (`Type`): The type supported by the returned copier.

### Returns

A deep copier capable of copying instances of type `type`, or `null` if an appropriate copier was not found.
