# Factory&lt;TParam1, TParam2, TParam3, TInstance&gt;

Package: [Microsoft.Orleans.Core](/orleans/docs/api/csharp/microsoft.orleans.core/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Core)

```csharp
public delegate TInstance Factory<TParam1, TParam2, TParam3, TInstance>(TParam1 param1, TParam2 param2, TParam3 param3);
```

Creates an instance of `TInstance`.

## Returns

The instance.

## Type parameters

- `TInstance`: The instance type.
- `TParam1`: The first parameter type.
- `TParam2`: The second parameter type.
- `TParam3`: The third parameter type.

## Constructors

- [Factory&lt;TParam1, TParam2, TParam3, TInstance&gt;(object, nint)](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.factory-4/constructors/constructor-object-nint-64f040db/)

## Methods

- [BeginInvoke(TParam1, TParam2, TParam3, AsyncCallback, object)](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.factory-4/methods/begininvoke-tparam1-tparam2-tparam3-system-asynccallback-object-dc3f9049/)
- [EndInvoke(IAsyncResult)](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.factory-4/methods/endinvoke-system-iasyncresult-b04e222d/)
