using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IpcLibrary.Core { /// /// IPC客户端接口 /// public interface IIPCClient : IDisposable { string ProcessId { get; } bool IsConnected { get; } event EventHandler ProcessConnected; event EventHandler ProcessDisconnected; event EventHandler MessageReceived; Task ConnectAsync(string serverAddress); Task DisconnectAsync(); Task CallMethodAsync(string targetProcessId, string serviceName, string methodName, params object[] parameters); Task CallMethodAsync(string targetProcessId, string serviceName, string methodName, Type returnType, params object[] parameters); Task SendNotificationAsync(string targetProcessId, string method, params object[] parameters); Task RegisterServiceAsync(string serviceName, T serviceInstance); Task UnregisterServiceAsync(string serviceName); } }