# IPlacementContext Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.runtime.placement.iplacementcontext/)

## GetCompatibleSilos(PlacementTarget) {#getcompatiblesilos-orleans-runtime-placement-placementtarget-bdaa1c48}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.runtime.placement.iplacementcontext/methods/getcompatiblesilos-orleans-runtime-placement-placementtarget-bdaa1c48/)

```csharp
public abstract SiloAddress[] GetCompatibleSilos(PlacementTarget target)
```

Gets the collection of silos which are compatible with the provided placement target.

### Parameters

- `target` (`PlacementTarget`): A description of the grain being placed as well as contextual information about the request which is triggering placement.

### Returns

The collection of silos which are compatible with the provided placement target.

## GetCompatibleSilosWithVersions(PlacementTarget) {#getcompatiblesiloswithversions-orleans-runtime-placement-placementtarget-c775473d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.runtime.placement.iplacementcontext/methods/getcompatiblesiloswithversions-orleans-runtime-placement-placementtarget-c775473d/)

```csharp
public abstract IReadOnlyDictionary<ushort, SiloAddress[]> GetCompatibleSilosWithVersions(PlacementTarget target)
```

Gets the collection of silos which are compatible with the provided placement target, along with the versions of the grain interface which each server supports.

### Parameters

- `target` (`PlacementTarget`): A description of the grain being placed as well as contextual information about the request which is triggering placement.

### Returns

The collection of silos which are compatible with the provided placement target, along with the versions of the grain interface which each server supports.
