public AssemblyLoaderService(IReloadManager reloadManager, Action <string> log) { _reloadManager = reloadManager; _log = log; OnReloadManager(reloadManager); }
public async Task Run(IReloadManager reloadManager, Action <string> log = null) { var server = new Server(new [] { new ChannelOption(ChannelOptions.MaxReceiveMessageLength, 838860800), new ChannelOption(ChannelOptions.MaxSendMessageLength, 838860800) }) { Services = { AssemblyLoader.BindService(new AssemblyLoaderService( reloadManager, log ?? (s => Debug.WriteLine(s)) )) }, Ports = { new ServerPort("0.0.0.0", Configuration.ListenPort, ServerCredentials.Insecure) } }; server.Start(); }
private void OnReloadManager(IReloadManager reloadManager) { _reloadManager = reloadManager; if (reloadManager is INotifyReplacement inr) { inr.NotifyReplacement = rm => { inr.NotifyReplacement = null; _log($"Replacing reload manager: {rm}"); OnReloadManager(rm); } } ; if (reloadManager is IRequestHostCommand irehc) { irehc.RequestHostCommand += req => RequestHostCommandImpl?.Invoke(req); } }