WinCopies.IPCService.Extensions.Windows
5.1.0
dotnet add package WinCopies.IPCService.Extensions.Windows --version 5.1.0
NuGet\Install-Package WinCopies.IPCService.Extensions.Windows -Version 5.1.0
<PackageReference Include="WinCopies.IPCService.Extensions.Windows" Version="5.1.0" />
paket add WinCopies.IPCService.Extensions.Windows --version 5.1.0
#r "nuget: WinCopies.IPCService.Extensions.Windows, 5.1.0"
// Install WinCopies.IPCService.Extensions.Windows as a Cake Addin #addin nuget:?package=WinCopies.IPCService.Extensions.Windows&version=5.1.0 // Install WinCopies.IPCService.Extensions.Windows as a Cake Tool #tool nuget:?package=WinCopies.IPCService.Extensions.Windows&version=5.1.0
IpcServiceFramework
A .NET Core 3.1 based lightweight framework for efficient inter-process communication. Named pipeline and TCP support out-of-the-box, extensible with other protocols.
Forked from https://github.com/jacqueskang/IpcServiceFramework
NuGet packages
Usage
Create an interface as service contract and package it in an assembly to be referenced by server and client applications, for example:
public interface IInterProcessService { string ReverseString(string input); }
Implement the service in server application, for example:
class InterProcessService : IInterProcessService { public string ReverseString(string input) { char[] charArray = input.ToCharArray(); Array.Reverse(charArray); return new string(charArray); } }
Install the following NuGet packages in server application:
> Install-Package Microsoft.Extensions.Hosting > Install-Package WinCopies.IPCService.Hosting.NamedPipe
Register the service implementation and configure IPC endpoint(s):
class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices(services => { services.AddScoped<IInterProcessService, InterProcessService>(); }) .ConfigureIpcHost(builder => { // configure IPC endpoints builder.AddNamedPipeEndpoint<IInterProcessService>(pipeName: "pipeinternal"); }) .ConfigureLogging(builder => { // optionally configure logging builder.SetMinimumLevel(LogLevel.Information); }); }
Install the following NuGet package in client application:
> Install-Package WinCopies.IPCService.Client.NamedPipe
Invoke the server
// register IPC clients ServiceProvider serviceProvider = new ServiceCollection() .AddNamedPipeIpcClient<IInterProcessService>("client1", pipeName: "pipeinternal") .BuildServiceProvider(); // resolve IPC client factory IClientFactory<IInterProcessService> clientFactory = serviceProvider .GetRequiredService<IClientFactory<IInterProcessService>>(); // create client IClient<IInterProcessService> client = clientFactory.CreateClient("client1"); string output = await client.InvokeAsync(x => x.ReverseString(input));
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net5.0-windows7.0 is compatible. 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. net6.0-windows7.0 is compatible. 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. net7.0-windows7.0 is compatible. 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 | netcoreapp3.0 is compatible. netcoreapp3.1 is compatible. |
.NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETCoreApp 3.0
- WinCopies.Collections (>= 3.20.0-preview)
- WinCopies.IPCService.Client.NamedPipe (>= 4.1.0)
- WinCopies.IPCService.Extensions (>= 5.1.0)
- WinCopies.IPCService.Hosting.NamedPipe (>= 5.0.0)
-
.NETCoreApp 3.1
- WinCopies.Collections (>= 3.20.0-preview)
- WinCopies.IPCService.Client.NamedPipe (>= 4.1.0)
- WinCopies.IPCService.Extensions (>= 5.1.0)
- WinCopies.IPCService.Hosting.NamedPipe (>= 5.0.0)
-
.NETFramework 4.7.2
- WinCopies.Collections (>= 3.20.0-preview)
- WinCopies.IPCService.Client.NamedPipe (>= 4.1.0)
- WinCopies.IPCService.Extensions (>= 5.1.0)
- WinCopies.IPCService.Hosting.NamedPipe (>= 5.0.0)
-
net5.0-windows7.0
- WinCopies.Collections (>= 3.20.0-preview)
- WinCopies.IPCService.Client.NamedPipe (>= 4.1.0)
- WinCopies.IPCService.Extensions (>= 5.1.0)
- WinCopies.IPCService.Hosting.NamedPipe (>= 5.0.0)
-
net6.0-windows7.0
- WinCopies.Collections (>= 3.20.0-preview)
- WinCopies.IPCService.Client.NamedPipe (>= 4.1.0)
- WinCopies.IPCService.Extensions (>= 5.1.0)
- WinCopies.IPCService.Hosting.NamedPipe (>= 5.0.0)
-
net7.0-windows7.0
- WinCopies.Collections (>= 3.20.0-preview)
- WinCopies.IPCService.Client.NamedPipe (>= 4.1.0)
- WinCopies.IPCService.Extensions (>= 5.1.0)
- WinCopies.IPCService.Hosting.NamedPipe (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See Changelog