# IProviderRuntime.BindExtension(Func&lt;TExtension&gt;)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.providers.iproviderruntime/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.providers.iproviderruntime/methods/)

```csharp
public abstract (TExtension Extension, TExtensionInterface ExtensionReference) IProviderRuntime.BindExtension<TExtension, TExtensionInterface>(Func<TExtension> newExtensionFunc)
```

Binds an extension to an addressable object, if not already done.

### Parameters

- `newExtensionFunc` (`Func<TExtension>`): A factory function that constructs a new extension object.

### Returns

A tuple, containing first the extension and second an addressable reference to the extension's interface.
