using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IpcLibrary.Core {
    /// <summary>
    /// 服务注册器接口
    /// </summary>
    public interface IServiceRegistry {
        Task RegisterServiceAsync<T>(string serviceName, T serviceInstance);
        Task UnregisterServiceAsync(string serviceName);
        object GetService(string serviceName);
        T GetService<T>(string serviceName);
        bool IsServiceRegistered(string serviceName);
        IReadOnlyList<string> GetRegisteredServices();
    }
}
