using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IpcLibrary.Core { /// /// IPC服务器接口 /// public interface IIPCServer : IDisposable { bool IsRunning { get; } IReadOnlyList ConnectedProcesses { get; } event EventHandler ProcessConnected; event EventHandler ProcessDisconnected; event EventHandler MessageReceived; Task StartAsync(string address); Task StopAsync(); Task CallMethodAsync(string targetProcessId, string serviceName, string methodName, params object[] parameters); Task SendNotificationAsync(string targetProcessId, string method, params object[] parameters); Task BroadcastNotificationAsync(string method, params object[] parameters); Task RegisterServiceAsync(string serviceName, T serviceInstance); Task UnregisterServiceAsync(string serviceName); } }