MediatR.Courier ๋ CQRS ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ฅํ์ผ๋ก
Event ๊ณต์ ๋ฅผ ๋ชฉ์ ์ผ๋ก ํฉ๋๋ค.
WPF Prism eventaggregator ๋น์ทํ ๊ธฐ๋ฅ์ ํฉ๋๋ค.
๋ณธ ์ํฐํด์์๋ Blazor๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
MediatR
MediatR.Courier
๋ Library ๋ฅผ ์ค์นํด์ผ ํ๋ฉฐ blazor์ ์ ์ฉ์์๋ Program.cs์
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(assemblies[0]))
.AddCourier(assemblies);
์์กด์ฑ์ ์ ์ธํฉ๋๋ค.
Model ์ ์ธ
public class ExampleEvent : INotification
{
public string message { get; set; }
}
INotification ์์ ๋ฐ์ต๋๋ค.
์์ ๋ถ
//๊ตฌ๋
์ ์ธ
Courier.Subscribe<ExampleEvent>(EventRecv);
//์คํ๋ถ
public void EventRecv(ExampleEvent exam, CancellationToken tk)
{
msg = exam.message;
StateHasChanged();
}
์ ํ๋ถ
async Task PubMes()
{
ExampleEvent ev = new ExampleEvent() { message = inpumsg };
await _mediator.Publish(ev);
}
BLAZOR PAGE์ ๋ชจ๋์ ๋ฐฐ์นํฉ๋๋ค.
๊ฒฐ๊ณผ