H.ProxyFactory.Pipes 0.8.2

Install-Package H.ProxyFactory.Pipes -Version 0.8.2
dotnet add package H.ProxyFactory.Pipes --version 0.8.2
<PackageReference Include="H.ProxyFactory.Pipes" Version="0.8.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add H.ProxyFactory.Pipes --version 0.8.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: H.ProxyFactory.Pipes, 0.8.2"
#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 H.ProxyFactory.Pipes as a Cake Addin
#addin nuget:?package=H.ProxyFactory.Pipes&version=0.8.2

// Install H.ProxyFactory.Pipes as a Cake Tool
#tool nuget:?package=H.ProxyFactory.Pipes&version=0.8.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

H.ProxyFactory

Language License Requirements Build Status

Allows you to interact with remote objects. You will have access to an interface through which you will interact with the object created on the server.

Features:

  • Create proxy objects that look exactly like the original objects
  • Proxy target can be located anywhere where there is access to pipes

Nuget

NuGet

Install-Package H.ProxyFactory.Pipes

Usage

Shared code:

public interface ISimpleEventClass
{
    event EventHandler<int> Event1;
    string Method2(string input);
}

public class SimpleEventClass : ISimpleEventClass
{
    public event EventHandler<int>? Event1;

    public void RaiseEvent1()
    {
        Event1?.Invoke(this, 777);
    }

    public string Method2(string input)
    {
        return $"Hello, input = {input}";
    }
}

Server:

await using var server = new PipeProxyServer();

await server.InitializeAsync("UniquePipeServerName");

Client:

await using var factory = new PipeProxyFactory();

await factory.InitializeAsync("UniquePipeServerName");

// If the server does not use the library where the shared code is located, it must be loaded.
await factory.LoadAssemblyAsync(typeof(SimpleEventClass).Assembly.Location);

// You will have access to an interface through which you will interact with the object created on the server.
var instance = await factory.CreateInstanceAsync<ISimpleEventClass>(
    typeof(SimpleEventClass).FullName ?? string.Empty);
instance.Event1 += (_, args) =>
{
    WriteLine($"{nameof(instance.Event1)}: {args}");
};
instance.RaiseEvent1();
var result = Instance.Method2("argument");

1

Contacts

NuGet packages (1)

Showing the top 1 NuGet packages that depend on H.ProxyFactory.Pipes:

Package Downloads
H.Containers.Process.Core

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.8.2 122 10/29/2021
0.7.4 2,378 12/10/2020
0.7.3.2 118 12/9/2020
0.7.3 262 12/8/2020
0.7.2 251 12/8/2020
0.7.1 268 12/8/2020
0.6.9.1 289 11/25/2020

⭐ Last 10 features:
- feat: Implemented safe CreateObjectAsync. 2021-10-30
- feat: Added try catch to example app. 2021-10-30
- feat: Added CLSCompliant(true). 2021-10-30
- feat: to auto-releases. 2021-10-29
- feat: Implemented example WPF app. 2021-10-29
- feat: Added empty wpf app. 2021-10-29
- feat: To file-scope namespaces. 2021-10-29
- feat: To net6.0 and C# 10. 2021-10-29

🐞 Last 10 bug fixes:
- fix: Changed CI build to windows-latest. 2021-10-30
- fix: Added Factory.LoadAssemblyAsync to example app. 2021-10-30
- fix: Fixed H.ProxyFactory.Pipes warnings. 2021-10-30
- fix: Fixed H.ProxyFactory warnings. 2021-10-30