H.Ipc.Generator
0.19.3
To single package
See the version list below for details.
dotnet add package H.Ipc.Generator --version 0.19.3
NuGet\Install-Package H.Ipc.Generator -Version 0.19.3
<PackageReference Include="H.Ipc.Generator" Version="0.19.3"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add H.Ipc.Generator --version 0.19.3
#r "nuget: H.Ipc.Generator, 0.19.3"
// Install H.Ipc.Generator as a Cake Addin #addin nuget:?package=H.Ipc.Generator&version=0.19.3 // Install H.Ipc.Generator as a Cake Tool #tool nuget:?package=H.Ipc.Generator&version=0.19.3
H.Ipc
This generator allows you to generate boilerplate code for H.Pipes based on the interface you specify. Generation example: https://github.com/HavenDV/H.ProxyFactory/issues/7#issuecomment-1072287342
Nuget
Install-Package H.Ipc.Generator
Install-Package H.Ipc.Core
Install-Package H.Pipes
Usage
// Common interface
public interface IActionService
{
void ShowTrayIcon();
void HideTrayIcon();
void SendText(string text);
}
// Server side implementation
[H.IpcGenerators.IpcServer]
public partial class ActionService : IActionService
{
public void ShowTrayIcon()
{
MessageBox.Show(nameof(ShowTrayIcon));
}
public void HideTrayIcon()
{
MessageBox.Show(nameof(HideTrayIcon));
}
public void SendText(string text)
{
MessageBox.Show(text);
}
}
// Client side implementation
[H.IpcGenerators.IpcClient]
public partial class ActionServiceClient : IActionService
{
}
// Server initialization
await using var server = new PipeServer<string>(ServerName);
var service = new ActionService();
service.Initialize(server);
await server.StartAsync();
// Client initialization
await using var client = new PipeClient<string>(ServerName);
var service = new ActionServiceClient();
service.Initialize(client);
await client.ConnectAsync();
// Client usage
client.ShowTrayIcon();
Notes
The generated code currently requires C# version 8 and above. You can enable this using the following code in your .csproj file:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Contacts
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- H.Formatters.System.Text.Json (>= 12.0.38)
- H.Ipc.Core (>= 1.0.0)
- H.Pipes.AccessControl (>= 2.0.38)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
⭐ Last 10 features:
To ConventionalCommitsGitInfo.
Moved extensions to H.Generators.Extensions.
To H.Generators.Extensions.
Added ExceptionOccurred event to generated code.
Replaced usings to `global::` prefixes.
Changed implementation to use IPipeConnection.
Added request.Type server check.
Added base RpcRequest type.
Added method parameters support.
Added RpcMethod based communication.
🐞 Last 10 bug fixes:
Fixed H.Ipc.Core package version.
Fixed tests.
Fixed H.Ipc.Core version.
Removed unused code.
Fixed tests.
Fixed request code generation for separate client/server libs.
Fixed some formatting bugs.
Removed net5/net6 targets from H.Ipc.Core.
Fixed CI.