https://github.com/bugthesystem/funnybus
Simple event aggregator/messenger for .net applications.
https://github.com/bugthesystem/funnybus
c-sharp event-aggregation message-handler messenger
Last synced: 3 months ago
JSON representation
Simple event aggregator/messenger for .net applications.
- Host: GitHub
- URL: https://github.com/bugthesystem/funnybus
- Owner: bugthesystem
- License: mit
- Created: 2014-04-11T13:35:39.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2017-03-13T10:58:23.000Z (almost 9 years ago)
- Last Synced: 2025-02-05T13:49:47.545Z (12 months ago)
- Topics: c-sharp, event-aggregation, message-handler, messenger
- Language: C#
- Homepage:
- Size: 1.06 MB
- Stars: 10
- Watchers: 6
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
FunnyBus
========
Simple event aggregator/messenger for .net applications
[](https://ci.appveyor.com/project/ziyasal/funnybus) [](https://coveralls.io/github/ziyasal/FunnyBus?branch=master)
* [Nuget Package](https://www.nuget.org/packages/FunnyBus/)
```chasrp
Install-Package FunnyBus
```
**Sample**
* Initialize bus
```csharp
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(typeof(ProductHandler).Assembly)
.AsImplementedInterfaces().SingleInstance();
builder.Register(context => Bus.Instance).As();
IContainer container = builder.Build();
Bus.Configure(context => context.SetResolver(new AutofacFunnyDependencyResolver(container)));
```
* Message handler definition
```csharp
public class ProductHandler :
IHandle,
IHandle
{
public void Handle(CreateProductMessage message)
{
Console.WriteLine(message.Name);
}
public DeleteProductResult Handle(DeleteProductMessage message)
{
Console.WriteLine(message.Message);
return new DeleteProductResult { Success=true };
}
}
```
* Message definition
```csharp
public class DeleteProductMessage
{
public int Id {get; set;}
}
```
* Publish Message
```csharp
var bus = container.Resolve();
bus.Publish(new CreateProductMessage{ Name = "Funny Product" });
//If there is a return type
DeleteProductResult result=bus.Publish(new DeleteProductMessage{ Id = 10 });
```
* Register handler
Message handlers are automatically scanned and registered.
To disable this behavior set **AutoScanHandlers** option **false**;
```csharp
var bus = container.Resolve();
_bus.Subscribe();
```
* Remove handler
```csharp
var bus = container.Resolve();
_bus.UnSubscribe();
```