ObjectBus 1.1.2
See the version list below for details.
dotnet add package ObjectBus --version 1.1.2
NuGet\Install-Package ObjectBus -Version 1.1.2
<PackageReference Include="ObjectBus" Version="1.1.2" />
paket add ObjectBus --version 1.1.2
#r "nuget: ObjectBus, 1.1.2"
// Install ObjectBus as a Cake Addin #addin nuget:?package=ObjectBus&version=1.1.2 // Install ObjectBus as a Cake Tool #tool nuget:?package=ObjectBus&version=1.1.2
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"));
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.