Frank.Channels.DependencyInjection 1.1.3-preview

This is a prerelease version of Frank.Channels.DependencyInjection.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Frank.Channels.DependencyInjection --version 1.1.3-preview                
NuGet\Install-Package Frank.Channels.DependencyInjection -Version 1.1.3-preview                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Frank.Channels.DependencyInjection" Version="1.1.3-preview" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Frank.Channels.DependencyInjection --version 1.1.3-preview                
#r "nuget: Frank.Channels.DependencyInjection, 1.1.3-preview"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Frank.Channels.DependencyInjection as a Cake Addin
#addin nuget:?package=Frank.Channels.DependencyInjection&version=1.1.3-preview&prerelease

// Install Frank.Channels.DependencyInjection as a Cake Tool
#tool nuget:?package=Frank.Channels.DependencyInjection&version=1.1.3-preview&prerelease                

Frank.Channels.DependencyInjection

A tiny library for having Channel<T> as a Dependency Injection resource in a sane manner


GitHub License NuGet NuGet

GitHub contributors GitHub Release Date - Published_At GitHub last commit GitHub commit activity GitHub pull requests GitHub issues GitHub closed issues


Usage

using Frank.Channels.DependencyInjection;

// Register the channel of a type as a dependency:
services.AddChannel<string>();

// Use the channel as a dependency in various ways:
var channel = provider.GetRequiredService<Channel<string>>();
var channelWriter = provider.GetRequiredService<ChannelWriter<string>>();
var channelReader = provider.GetRequiredService<ChannelReader<string>>();

Advanced usage

using Frank.Channels.DependencyInjection;

// Register the channel of a type as a dependency with a custom configuration:
services.AddChannel<string>(options =>
{
    options.BoundedCapacity = 100;
    options.FullMode = BoundedChannelFullMode.Wait;
    options.SingleReader = true;
    options.SingleWriter = true;
});

// Use the channel as a dependency in various ways:
var channel = provider.GetRequiredService<Channel<string>>();
var channelWriter = provider.GetRequiredService<ChannelWriter<string>>();
var channelReader = provider.GetRequiredService<ChannelReader<string>>();
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Frank.Channels.DependencyInjection:

Package Downloads
Frank.PulseFlow

PulseFlow uses Channel -mechanism for internal messaging

Frank.WireFish

WireFish is a library for capturing network traffic. Its meant to be very simple and flexible. It is built on top of SharpPcap and Frank.Channels.DependencyInjection, intending to provide a simple and flexible way to capture network traffic. Then allow the user to process the packets in any way they see fit. The intention is to only provide the capturing and then allow the user to register their own packet processors to do whatever they want with the packets. This came about because I needed to capture network traffic and WireShark is very unwieldy and I wanted to be able to process the packets in any way I wanted where as WireShark is very limited in what it can do.

Frank.WorkflowEngine

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 238 2/24/2024
1.1.3-preview 99 2/24/2024
1.1.0 343 2/2/2024
1.0.2-preview 85 2/2/2024
1.0.0 115 2/1/2024
0.1.1-preview 93 1/31/2024