ObjectBus 2.0.0
dotnet add package ObjectBus --version 2.0.0
NuGet\Install-Package ObjectBus -Version 2.0.0
<PackageReference Include="ObjectBus" Version="2.0.0" />
paket add ObjectBus --version 2.0.0
#r "nuget: ObjectBus, 2.0.0"
// Install ObjectBus as a Cake Addin #addin nuget:?package=ObjectBus&version=2.0.0 // Install ObjectBus as a Cake Tool #tool nuget:?package=ObjectBus&version=2.0.0
ObjectBus
ObjectBus is a library to make it quick and simple to serialize/serialize objects across applications via an Azure Service Bus.
Usage
First create your ObjectBus in the ConfigureServices() method, by specifying the connection information and bus type.
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 receive objects, subscribe to the MessageRecieved
event of the ObjectBus.
public MyClass(IObjectBus<YourMessageObject> objectBus)
{
NewObjectBus = objectBus;
NewObjectBus.MessageRecieved += onMessageRecieved;
}
The received 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 (>= 4.1.3)
- Microsoft.Extensions.DependencyInjection (>= 3.1.7)
- Microsoft.Extensions.Options (>= 3.1.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.