H.Ipc.Generator
0.21.0
To single package
dotnet add package H.Ipc.Generator --version 0.21.0
NuGet\Install-Package H.Ipc.Generator -Version 0.21.0
<PackageReference Include="H.Ipc.Generator" Version="0.21.0" />
paket add H.Ipc.Generator --version 0.21.0
#r "nuget: H.Ipc.Generator, 0.21.0"
// Install H.Ipc.Generator as a Cake Addin #addin nuget:?package=H.Ipc.Generator&version=0.21.0 // Install H.Ipc.Generator as a Cake Tool #tool nuget:?package=H.Ipc.Generator&version=0.21.0
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.47)
- H.Pipes.AccessControl (>= 2.0.47)
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 steps.
Lowered dotnet version requirements to run the generator.
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.
🐞 Last 10 fixes:
Fixed some issues.
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.