![]() |
VOOZH | about |
dotnet add package Reo.Core.BaseDomainModels.MediatR --version 10.0.191
NuGet\Install-Package Reo.Core.BaseDomainModels.MediatR -Version 10.0.191
<PackageReference Include="Reo.Core.BaseDomainModels.MediatR" Version="10.0.191" />
<PackageVersion Include="Reo.Core.BaseDomainModels.MediatR" Version="10.0.191" />Directory.Packages.props
<PackageReference Include="Reo.Core.BaseDomainModels.MediatR" />Project file
paket add Reo.Core.BaseDomainModels.MediatR --version 10.0.191
#r "nuget: Reo.Core.BaseDomainModels.MediatR, 10.0.191"
#:package Reo.Core.BaseDomainModels.MediatR@10.0.191
#addin nuget:?package=Reo.Core.BaseDomainModels.MediatR&version=10.0.191Install as a Cake Addin
#tool nuget:?package=Reo.Core.BaseDomainModels.MediatR&version=10.0.191Install as a Cake Tool
Пакет Reo.Core.BaseDomainModels.MediatR предоставляет набор базовых классов и интерфейсов для построения приложений на основе Domain-Driven Design (DDD) с интеграцией MediatR. Он решает задачи структурирования бизнес-логики, управления доменными событиями и командами, а также обеспечивает удобный способ взаимодействия с репозиториями.
Основные функции:
Интерфейс для агрегатов доменной модели. Определяет обязательные свойства и методы, такие как Id и методы для
обработки команд и событий.
Интерфейсы для команд, которые могут быть обработаны через MediatR. IReoDomainCommand используется для команд без
возвращаемого значения, а IReoDomainCommandWithResult — для команд, возвращающих bool.
Интерфейс для доменных событий, реализующих INotification из MediatR. Используется для публикации событий после
изменения состояния агрегата.
Интерфейсы для исполнения команд и событий. Реализуются в базовых классах, таких как ReoAggregateRoot, и обеспечивают
интеграцию с MediatR.
Абстракции для репозиториев. Предоставляют методы для чтения и записи агрегатов в хранилище данных.
Базовый класс для реализации агрегатов. Реализует IReoAggregateRoot<TId>, IReoDomainCommandsExecutor,
IReoDomainEventsExecutor и предоставляет методы для добавления команд и событий.
Install-Package Reo.Core.BaseDomainModels.MediatR
dotnet add package Reo.Core.BaseDomainModels.MediatR
Добавьте сервисы в ConfigureServices в Startup.cs или Program.cs:
services.AddMediatR(cfg => {
cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly);
});
services.AddScoped<IReoDomainReadOnlyRepository<MyAggregateRoot>, MyRepository>();
services.AddScoped<IReoDomainWriteOnlyRepository<MyAggregateRoot>, MyRepository>();
public class CreateOrderCommand : IReoDomainCommand
{
public Guid CustomerId { get; set; }
public List<OrderItem> Items { get; set; }
}
public class OrderAggregate : ReoAggregateRoot<Guid>
{
public Guid CustomerId { get; private set; }
public List<OrderItem> Items { get; private set; }
public void Apply(CreateOrderCommand command)
{
CustomerId = command.CustomerId;
Items = command.Items;
AddDomainEvent(new OrderCreatedEvent { OrderId = Id });
}
}
public class OrderCreatedEvent : IReoDomainEvent
{
public Guid OrderId { get; set; }
}
public class CreateOrderCommandHandler : IRequestHandler<CreateOrderCommand>
{
private readonly IReoDomainWriteOnlyRepository<OrderAggregate> _repository;
public CreateOrderCommandHandler(IReoDomainWriteOnlyRepository<OrderAggregate> repository)
{
_repository = repository;
}
public async Task Handle(CreateOrderCommand command, CancellationToken token)
{
var aggregate = new OrderAggregate();
aggregate.Apply(command);
await _repository.SaveAsync(aggregate, token);
}
}
public class OrderCreatedEventHandler : INotificationHandler<OrderCreatedEvent>
{
public async Task Handle(OrderCreatedEvent notification, CancellationToken token)
{
// Логика обработки события (например, отправка уведомления).
Console.WriteLine($"Order created: {notification.OrderId}");
}
}
Данный пакет распространяется под лицензией MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 1 NuGet packages that depend on Reo.Core.BaseDomainModels.MediatR:
| Package | Downloads |
|---|---|
|
Reo.Core.Application.Abstractions.MediatR
Package Description |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.233 | 43 | 6/26/2026 |
| 10.0.232 | 48 | 6/26/2026 |
| 10.0.231 | 41 | 6/26/2026 |
| 10.0.230 | 49 | 6/26/2026 |
| 10.0.229 | 47 | 6/25/2026 |
| 10.0.228 | 49 | 6/25/2026 |
| 10.0.227 | 59 | 6/25/2026 |
| 10.0.226 | 62 | 6/24/2026 |
| 10.0.225 | 55 | 6/24/2026 |
| 10.0.224 | 96 | 6/23/2026 |
| 10.0.223 | 93 | 6/23/2026 |
| 10.0.222 | 93 | 6/23/2026 |
| 10.0.221 | 97 | 6/23/2026 |
| 10.0.220 | 96 | 6/23/2026 |
| 10.0.219 | 94 | 6/23/2026 |
| 10.0.217 | 91 | 6/23/2026 |
| 10.0.216 | 97 | 6/23/2026 |
| 10.0.215 | 94 | 6/23/2026 |
| 10.0.214 | 93 | 6/23/2026 |
| 10.0.191 | 102 | 6/11/2026 |