ObjectBus 1.1.0
See the version list below for details.
dotnet add package ObjectBus --version 1.1.0
NuGet\Install-Package ObjectBus -Version 1.1.0
<PackageReference Include="ObjectBus" Version="1.1.0" />
paket add ObjectBus --version 1.1.0
#r "nuget: ObjectBus, 1.1.0"
// Install ObjectBus as a Cake Addin #addin nuget:?package=ObjectBus&version=1.1.0 // Install ObjectBus as a Cake Tool #tool nuget:?package=ObjectBus&version=1.1.0
ObjectBus
ObjectBus is a library to make it quick and simple to serialize/deserialize objects to transmit via an Azure Serial Bus.
Usage
First create your ObjectBus in the ConfigureServices() method, like so:
services.CreateObjectBus<YourMessageObject>(p =>
p.Configure("ConnectionString", "QueueName"));
ObjectBus can handle multiple object types on one bus, utilizing a single client if the connection string and queue name are the same. To add multiple objects, simply call the services.CreateObjectBus()
with the desired objects.
By default, ObjectBus instances are configured to be both senders and recievers. To adjust this, pass a BusTypes
enum into the configure method.
services.CreateObjectBus<YourMessageObject>(p =>
p.Configure("ConnectionString", "QueueName", BusTypes.Sender));
//OR
services.CreateObjectBus<YourMessageObject>(p =>
p.Configure("ConnectionString", "QueueName", BusTypes.Reciever));
Then, access the ObjectBus via dependency injection in the constructor:
private IObjectBus<YourMessageObject> NewObjectBus { get; }
public MyClass(IObjectBus<YourMessageObject> objectBus)
{
NewObjectBus = objectBus;
}
Send
To send your objects, simply call the SendAsync()
method with the object you wish to send, like so:
public void SendObject()
{
var newObject = new YourMessageObject();
NewObjectBus.SendAsync(newObject);
}
Recieve
To recieve objects, subscribe to the MessageRecieved
event of the ObjectBus.
public MyClass(IObjectBus<YourMessageObject> objectBus)
{
NewObjectBus = objectBus;
NewObjectBus.MessageRecieved += onMessageRecieved;
}
The recieved object is within the MessageEventArgs
argument.
private void onMessageRecieved(object sender, MessageEventArgs<RecordingChunk> e)
{
var myObject = e.Object;
//Do something with object.
}
Overrides
If the current implementation doesn't fit your use case, you can create a subclass of ObjectBus, and override the SendAsync()
or HandleMessageAsync()
methods like so:
public class SubclassObjectBus : ObjectBus<YourMessageObject>
{
public SubclassObjectBus(IOptions<YourMessageObject> options) : base(options) {}
//Handle incoming messages.
override Task HandleMessageAsync(YourMessageObject message) {}
//Handle outgoing messages.
override Task SendAsync(YourMessageObject message){}
}
This can then be injected in the startup method similar to before, with the subclass specified.
services.CreateObjectBus<YourMessageObject, SubclassObjectBus>(p =>
p.Configure("ConnectionString", "QueueName", BusTypes.Sender));
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Azure.ServiceBus (>= 3.4.0)
- Microsoft.Extensions.DependencyInjection (>= 2.2.0)
- Microsoft.Extensions.Options (>= 2.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.