WinCopies.IPCService.Hosting.NamedPipe 4.0.0

Package Description

Install-Package WinCopies.IPCService.Hosting.NamedPipe -Version 4.0.0
dotnet add package WinCopies.IPCService.Hosting.NamedPipe --version 4.0.0
<PackageReference Include="WinCopies.IPCService.Hosting.NamedPipe" Version="4.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add WinCopies.IPCService.Hosting.NamedPipe --version 4.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: WinCopies.IPCService.Hosting.NamedPipe, 4.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install WinCopies.IPCService.Hosting.NamedPipe as a Cake Addin
#addin nuget:?package=WinCopies.IPCService.Hosting.NamedPipe&version=4.0.0

// Install WinCopies.IPCService.Hosting.NamedPipe as a Cake Tool
#tool nuget:?package=WinCopies.IPCService.Hosting.NamedPipe&version=4.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

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

Name Purpose Status
WinCopies.IPCService.Client.NamedPipe Client SDK to consume IPC service over Named pipe NuGet version
WinCopies.IPCService.Hosting.NamedPipe Server SDK to run Named pipe IPC service endpoint NuGet version

Usage

  1. 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);
    }
    
  2. 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);
        }
    }
    
  3. Install the following NuGet packages in server application:

    > Install-Package Microsoft.Extensions.Hosting
    > Install-Package WinCopies.IPCService.Hosting.NamedPipe
    
  4. 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);
                });
    }
    
  5. Install the following NuGet package in client application:

    > Install-Package WinCopies.IPCService.Client.NamedPipe
    
  6. 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));
    

FAQs

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

Name Purpose Status
WinCopies.IPCService.Client.NamedPipe Client SDK to consume IPC service over Named pipe NuGet version
WinCopies.IPCService.Hosting.NamedPipe Server SDK to run Named pipe IPC service endpoint NuGet version

Usage

  1. 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);
    }
    
  2. 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);
        }
    }
    
  3. Install the following NuGet packages in server application:

    > Install-Package Microsoft.Extensions.Hosting
    > Install-Package WinCopies.IPCService.Hosting.NamedPipe
    
  4. 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);
                });
    }
    
  5. Install the following NuGet package in client application:

    > Install-Package WinCopies.IPCService.Client.NamedPipe
    
  6. 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));
    

FAQs

Release Notes

See Changelog

NuGet packages (2)

Showing the top 2 NuGet packages that depend on WinCopies.IPCService.Hosting.NamedPipe:

Package Downloads
WinCopies.IPCService.Extensions
Package Description
WinCopies.IPCService.Extensions.Windows
Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
4.0.0 208 6/25/2021