Skip to content

Commit eccf83b

Browse files
committed
Update docs for adding handlers in other assemblies
1 parent 55f9717 commit eccf83b

1 file changed

Lines changed: 25 additions & 12 deletions

File tree

docs/guide/getting-started.md

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,31 @@ public void ConfigureServices(IServiceCollection services)
5656
}
5757
```
5858

59+
### Adding Handlers From Other Assemblies
60+
61+
If your handlers live in other class library projects (e.g. a modular feature like `Orders.Module`), register those assemblies so their generated handlers are picked up.
62+
63+
Basic usage:
64+
65+
```csharp
66+
using Orders.Module.Messages; // any type from the target assembly
67+
68+
builder.Services.AddMediator(c =>
69+
c.AddAssembly<OrderCreated>()
70+
);
71+
```
72+
73+
Multiple assemblies:
74+
75+
```csharp
76+
builder.Services.AddMediator(c =>
77+
c.AddAssembly<OrderCreated>()
78+
.AddAssembly<InventoryItemReserved>()
79+
);
80+
```
81+
82+
Tip: If you don't call `AddAssembly(...)`, the mediator will scan currently loaded (non-System) assemblies, which is fine for simple apps. Explicit registration gives you clearer intent and can trim startup work. For deeper details see the dependency injection guide.
83+
5984
### 2. Create Your First Message
6085

6186
Define a simple message:
@@ -181,18 +206,6 @@ public class UserHandler
181206
private readonly ILogger<UserHandler> _logger;
182207

183208
public UserHandler(IUserRepository repository, ILogger<UserHandler> logger)
184-
{
185-
_repository = repository;
186-
_logger = logger;
187-
}
188-
189-
public async Task<User> HandleAsync(GetUser query, CancellationToken cancellationToken)
190-
{
191-
_logger.LogInformation("Getting user {UserId}", query.Id);
192-
return await _repository.GetByIdAsync(query.Id, cancellationToken);
193-
}
194-
}
195-
```
196209

197210
## Next Steps
198211

0 commit comments

Comments
 (0)