O.Announcements
2.0.2
dotnet add package O.Announcements --version 2.0.2
NuGet\Install-Package O.Announcements -Version 2.0.2
<PackageReference Include="O.Announcements" Version="2.0.2" />
<PackageVersion Include="O.Announcements" Version="2.0.2" />
<PackageReference Include="O.Announcements" />
paket add O.Announcements --version 2.0.2
#r "nuget: O.Announcements, 2.0.2"
#:package O.Announcements@2.0.2
#addin nuget:?package=O.Announcements&version=2.0.2
#tool nuget:?package=O.Announcements&version=2.0.2
O.Announcements
Overview
The Announcements project provides a mechanism for internal communication within an application through announcements. It includes interfaces for announcement publishers and subscribers, a factory for creating announcement publishers, and an example implementation demonstrating its usage.
Installation
You can install the package via NuGet:
dotnet add package O.Announcements
Or via the NuGet Package Manager Console:
Install-Package O.Announcements
Usage
To use the announcement mechanism, follow these steps:
- Create a subscriber that implements the ISubscriber interface.
- Add the subscriber to the AnnouncementFactory.
- Create a publisher using the AnnouncementFactory.
- Publish announcements using the publisher.
The AnnouncementCommand class in the Demo project provides an example of how to set up and use the announcement mechanism.
Example
Here is a basic example of how to use the announcement mechanism:
using O.Announcements;
using System;
public class ExampleSubscriber : ISubscriber
{
public void Receive(Type module, IAnnouncement announcement)
{
Console.WriteLine($"Received announcement from {module.Name}: {announcement}");
}
}
public class Program
{
public static void Main()
{
// Create and add a subscriber
ExampleSubscriber subscriber = new ExampleSubscriber();
AnnouncementFactory.AddSubscriber(subscriber);
// Create a publisher
IPublisher publisher = AnnouncementFactory.GetPublisher<Program>();
// Publish an announcement
publisher.Publish(new StatusAnnouncement(Status.Connected));
// Clean up
AnnouncementFactory.RemoveSubscriber(subscriber);
}
}
public sealed class StatusAnnouncement : IAnnouncement
{
public Status Status { get; }
public StatusAnnouncement(Status status)
{
Status = status;
}
public override string ToString() => Status.ToString();
}
public enum Status
{
Disconnected,
Connected,
Error
}
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Project Links
Authors
- Oakrey
Tags
- Application internal communication
- Messaging
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.