![]() |
VOOZH | about |
dotnet add package Reo.Core.BaseDomainModels.MediatR --version 10.0.210
NuGet\Install-Package Reo.Core.BaseDomainModels.MediatR -Version 10.0.210
<PackageReference Include="Reo.Core.BaseDomainModels.MediatR" Version="10.0.210" />
<PackageVersion Include="Reo.Core.BaseDomainModels.MediatR" Version="10.0.210" />Directory.Packages.props
<PackageReference Include="Reo.Core.BaseDomainModels.MediatR" />Project file
paket add Reo.Core.BaseDomainModels.MediatR --version 10.0.210
#r "nuget: Reo.Core.BaseDomainModels.MediatR, 10.0.210"
#:package Reo.Core.BaseDomainModels.MediatR@10.0.210
#addin nuget:?package=Reo.Core.BaseDomainModels.MediatR&version=10.0.210Install as a Cake Addin
#tool nuget:?package=Reo.Core.BaseDomainModels.MediatR&version=10.0.210Install 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.210 | 0 | 6/18/2026 |
| 10.0.209 | 62 | 6/17/2026 |
| 10.0.208 | 61 | 6/17/2026 |
| 10.0.207 | 65 | 6/17/2026 |
| 10.0.206 | 61 | 6/17/2026 |
| 10.0.205 | 74 | 6/16/2026 |
| 10.0.204 | 71 | 6/16/2026 |
| 10.0.203 | 82 | 6/16/2026 |
| 10.0.202 | 83 | 6/16/2026 |
| 10.0.201 | 86 | 6/16/2026 |
| 10.0.200 | 84 | 6/16/2026 |
| 10.0.199 | 92 | 6/16/2026 |
| 10.0.198 | 81 | 6/16/2026 |
| 10.0.197 | 108 | 6/16/2026 |
| 10.0.196 | 84 | 6/16/2026 |
| 10.0.195 | 93 | 6/15/2026 |
| 10.0.194 | 94 | 6/15/2026 |
| 10.0.193 | 94 | 6/15/2026 |
| 10.0.192 | 95 | 6/11/2026 |
| 10.0.191 | 92 | 6/11/2026 |