This generator allows you to generate boilerplate code for H.Pipes based on the interface you specify. Generation example: HavenDV/H.ProxyFactory#7 (comment)
Install-Package H.Ipc
// 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();
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> <!-- or just 8.0 -->
</PropertyGroup>