# PlacementStrategyExtensions Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.placementstrategyextensions/)

## AddPlacementDirector(ISiloBuilder) {#addplacementdirector-2-this-orleans-hosting-isilobuilder-fa125ebb}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.placementstrategyextensions/methods/addplacementdirector-2-this-orleans-hosting-isilobuilder-fa125ebb/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Hosting/PlacementStrategyExtensions.cs#L24)

```csharp
public static ISiloBuilder AddPlacementDirector<TStrategy, TDirector>(this ISiloBuilder builder)
```

Configures a `TDirector` as the placement director for placement strategy `TStrategy`.

### Parameters

- `builder` (`ISiloBuilder`): The builder.

### Returns

The builder.

## AddPlacementDirector(ISiloBuilder, Func&lt;IServiceProvider, IPlacementDirector&gt;) {#addplacementdirector-1-this-orleans-hosting-isilobuilder-system-func-system-iser-9531fd68}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.placementstrategyextensions/methods/addplacementdirector-1-this-orleans-hosting-isilobuilder-system-func-system-iser-9531fd68/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Hosting/PlacementStrategyExtensions.cs#L37)

```csharp
public static ISiloBuilder AddPlacementDirector<TStrategy>(this ISiloBuilder builder, Func<IServiceProvider, IPlacementDirector> createDirector)
```

Adds a placement director.

### Parameters

- `builder` (`ISiloBuilder`): The builder.
- `createDirector` (`Func<IServiceProvider, IPlacementDirector>`): The delegate used to create the placement director.

### Returns

The builder.

## AddPlacementDirector(IServiceCollection) {#addplacementdirector-2-this-microsoft-extensions-dependencyinjection-iservicecol-e452ee12}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.placementstrategyextensions/methods/addplacementdirector-2-this-microsoft-extensions-dependencyinjection-iservicecol-e452ee12/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Hosting/PlacementStrategyExtensions.cs#L49)

```csharp
public static void AddPlacementDirector<TStrategy, TDirector>(this IServiceCollection services)
```

Configures a `TDirector` as the placement director for placement strategy `TStrategy`.

### Parameters

- `services` (`IServiceCollection`): The service collection.

### Returns

The service collection.

## AddPlacementDirector(IServiceCollection, ServiceLifetime) {#addplacementdirector-2-this-microsoft-extensions-dependencyinjection-iservicecol-032f07c0}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.placementstrategyextensions/methods/addplacementdirector-2-this-microsoft-extensions-dependencyinjection-iservicecol-032f07c0/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Hosting/PlacementStrategyExtensions.cs#L63-L65)

```csharp
public static void AddPlacementDirector<TStrategy, TDirector>(this IServiceCollection services, ServiceLifetime strategyLifetime)
```

Configures a `TDirector` as the placement director for placement strategy `TStrategy`.

### Parameters

- `services` (`IServiceCollection`): The service collection.
- `strategyLifetime` (`ServiceLifetime`): The lifetime of the placement strategy.

### Returns

The service collection.

## AddPlacementDirector(IServiceCollection, Func&lt;IServiceProvider, IPlacementDirector&gt;) {#addplacementdirector-1-this-microsoft-extensions-dependencyinjection-iservicecol-2bf2bcc1}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.placementstrategyextensions/methods/addplacementdirector-1-this-microsoft-extensions-dependencyinjection-iservicecol-2bf2bcc1/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Hosting/PlacementStrategyExtensions.cs#L75)

```csharp
public static void AddPlacementDirector<TStrategy>(this IServiceCollection services, Func<IServiceProvider, IPlacementDirector> createDirector)
```

Adds a placement director.

### Parameters

- `services` (`IServiceCollection`): The service collection.
- `createDirector` (`Func<IServiceProvider, IPlacementDirector>`): The delegate used to create the placement director.

### Returns

The service collection.

## AddPlacementDirector(IServiceCollection, Func&lt;IServiceProvider, IPlacementDirector&gt;, ServiceLifetime) {#addplacementdirector-1-this-microsoft-extensions-dependencyinjection-iservicecol-d18e94f3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.runtime/orleans.hosting.placementstrategyextensions/methods/addplacementdirector-1-this-microsoft-extensions-dependencyinjection-iservicecol-d18e94f3/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Runtime/Hosting/PlacementStrategyExtensions.cs#L88-L90)

```csharp
public static void AddPlacementDirector<TStrategy>(this IServiceCollection services, Func<IServiceProvider, IPlacementDirector> createDirector, ServiceLifetime strategyLifetime)
```

Adds a placement director.

### Parameters

- `services` (`IServiceCollection`): The service collection.
- `createDirector` (`Func<IServiceProvider, IPlacementDirector>`): The delegate used to create the placement director.
- `strategyLifetime` (`ServiceLifetime`): The lifetime of the placement strategy.

### Returns

The service collection.
