# StreamSubscriptionManagerExtensions Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/)

## AddSubscription(IStreamSubscriptionManager, IGrainFactory, StreamId, string, GrainId) {#addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-6bde4d15}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/methods/addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-6bde4d15/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/PubSub/StreamSubscriptionManagerExtensions.cs#L32-L33)

```csharp
public static Task<StreamSubscription> AddSubscription<TGrainInterface>(this IStreamSubscriptionManager manager, IGrainFactory grainFactory, StreamId streamId, string streamProviderName, GrainId grainId)
```

Subscribes the specified grain to the specified stream.

### Parameters

- `manager` (`IStreamSubscriptionManager`): The manager.
- `grainFactory` (`IGrainFactory`): The grain factory.
- `streamId` (`StreamId`): The stream identifier.
- `streamProviderName` (`string`): Name of the stream provider.
- `grainId` (`GrainId`): The grain to subscribe.

### Returns

The newly added subscription.

## AddSubscription(IStreamSubscriptionManager, IGrainFactory, StreamId, string, Guid, string) {#addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-5af797ce}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/methods/addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-5af797ce/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/PubSub/StreamSubscriptionManagerExtensions.cs)

```csharp
public static Task<StreamSubscription> AddSubscription<TGrainInterface>(this IStreamSubscriptionManager manager, IGrainFactory grainFactory, StreamId streamId, string streamProviderName, Guid primaryKey, string grainClassNamePrefix = null)
```

Subscribes the specified grain to the specified stream.

### Parameters

- `manager` (`IStreamSubscriptionManager`): The manager.
- `grainFactory` (`IGrainFactory`): The grain factory.
- `streamId` (`StreamId`): The stream identifier.
- `streamProviderName` (`string`): Name of the stream provider.
- `primaryKey` (`Guid`): The grain's primary key.
- `grainClassNamePrefix` (`string`): The grain class name prefix.

### Returns

The newly added subscription.

## AddSubscription(IStreamSubscriptionManager, IGrainFactory, StreamId, string, Guid, string, string) {#addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-d8149353}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/methods/addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-d8149353/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/PubSub/StreamSubscriptionManagerExtensions.cs)

```csharp
public static Task<StreamSubscription> AddSubscription<TGrainInterface>(this IStreamSubscriptionManager manager, IGrainFactory grainFactory, StreamId streamId, string streamProviderName, Guid primaryKey, string keyExtension, string grainClassNamePrefix = null)
```

Subscribes the specified grain to the specified stream.

### Parameters

- `manager` (`IStreamSubscriptionManager`): The manager.
- `grainFactory` (`IGrainFactory`): The grain factory.
- `streamId` (`StreamId`): The stream identifier.
- `streamProviderName` (`string`): Name of the stream provider.
- `primaryKey` (`Guid`): The grain's primary key.
- `keyExtension` (`string`): The grain's key extension.
- `grainClassNamePrefix` (`string`): The grain class name prefix.

### Returns

The newly added subscription.

## AddSubscription(IStreamSubscriptionManager, IGrainFactory, StreamId, string, long, string) {#addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-21064c1d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/methods/addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-21064c1d/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/PubSub/StreamSubscriptionManagerExtensions.cs)

```csharp
public static Task<StreamSubscription> AddSubscription<TGrainInterface>(this IStreamSubscriptionManager manager, IGrainFactory grainFactory, StreamId streamId, string streamProviderName, long primaryKey, string grainClassNamePrefix = null)
```

Subscribes the specified grain to the specified stream.

### Parameters

- `manager` (`IStreamSubscriptionManager`): The manager.
- `grainFactory` (`IGrainFactory`): The grain factory.
- `streamId` (`StreamId`): The stream identifier.
- `streamProviderName` (`string`): Name of the stream provider.
- `primaryKey` (`long`): The grain's primary key.
- `grainClassNamePrefix` (`string`): The grain class name prefix.

### Returns

The newly added subscription.

## AddSubscription(IStreamSubscriptionManager, IGrainFactory, StreamId, string, long, string, string) {#addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-23324172}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/methods/addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-23324172/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/PubSub/StreamSubscriptionManagerExtensions.cs)

```csharp
public static Task<StreamSubscription> AddSubscription<TGrainInterface>(this IStreamSubscriptionManager manager, IGrainFactory grainFactory, StreamId streamId, string streamProviderName, long primaryKey, string keyExtension, string grainClassNamePrefix = null)
```

Subscribes the specified grain to the specified stream.

### Parameters

- `manager` (`IStreamSubscriptionManager`): The manager.
- `grainFactory` (`IGrainFactory`): The grain factory.
- `streamId` (`StreamId`): The stream identifier.
- `streamProviderName` (`string`): Name of the stream provider.
- `primaryKey` (`long`): The grain's primary key.
- `keyExtension` (`string`): The grain's key extension.
- `grainClassNamePrefix` (`string`): The grain class name prefix.

### Returns

The newly added subscription.

## AddSubscription(IStreamSubscriptionManager, IGrainFactory, StreamId, string, string, string) {#addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-3e117816}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/methods/addsubscription-1-this-orleans-streams-core-istreamsubscriptionmanager-orleans-i-3e117816/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/PubSub/StreamSubscriptionManagerExtensions.cs)

```csharp
public static Task<StreamSubscription> AddSubscription<TGrainInterface>(this IStreamSubscriptionManager manager, IGrainFactory grainFactory, StreamId streamId, string streamProviderName, string primaryKey, string grainClassNamePrefix = null)
```

Subscribes the specified grain to the specified stream.

### Parameters

- `manager` (`IStreamSubscriptionManager`): The manager.
- `grainFactory` (`IGrainFactory`): The grain factory.
- `streamId` (`StreamId`): The stream identifier.
- `streamProviderName` (`string`): Name of the stream provider.
- `primaryKey` (`string`): The grain's primary key.
- `grainClassNamePrefix` (`string`): The grain class name prefix.

### Returns

The newly added subscription.

## TryGetStreamSubscriptionManager(IStreamProvider, IStreamSubscriptionManager) {#trygetstreamsubscriptionmanager-this-orleans-streams-istreamprovider-out-orleans-a76aec6d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.pubsub.streamsubscriptionmanagerextensions/methods/trygetstreamsubscriptionmanager-this-orleans-streams-istreamprovider-out-orleans-a76aec6d/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/PubSub/StreamSubscriptionManagerExtensions.cs#L168-L177)

```csharp
public static bool TryGetStreamSubscriptionManager(this IStreamProvider streamProvider, out IStreamSubscriptionManager manager)
```

Returns the [IStreamSubscriptionManager](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.core.istreamsubscriptionmanager/) for the provided stream provider.

### Parameters

- `streamProvider` (`IStreamProvider`): The stream provider.
- `manager` (`IStreamSubscriptionManager`): The manager.

### Returns

`true` if the stream subscription manager could be retrieved, `false` otherwise.
