public static bool UnregisterViewController(IHotReloadableController controller) { string contentFile = controller.ContentFilePath; if (string.IsNullOrEmpty(contentFile)) { #if HRVC_DEBUG Logger.log.Critical($"Skipping registration for {controller.GetInstanceID()}:{controller.Name}, it has not content file defined."); #endif return(false); } bool successful = false; string contentDirectory = Path.GetDirectoryName(contentFile); if (WatcherDictionary.TryGetValue(contentDirectory, out WatcherGroup watcherGroup)) { successful = watcherGroup.UnbindController(controller); } #if HRVC_DEBUG else { Logger.log.Warn($"Unable to get WatcherGroup for {contentDirectory}"); } if (successful) { Logger.log.Info($"Successfully unregistered {controller.GetInstanceID()}:{controller.Name}"); } else { Logger.log.Warn($"Failed to Unregister {controller.GetInstanceID()}:{controller.Name}"); } #endif return(successful); }
internal bool BindController(IHotReloadableController controller) { if (BoundControllers.ContainsKey(controller.GetInstanceID())) { #if HRVC_DEBUG Logger.log.Critical($"Failed to register controller, already exists. {controller.GetInstanceID()}:{controller.Name}"); #endif return(false); } BoundControllers.Add(controller.GetInstanceID(), new WeakReference <IHotReloadableController>(controller)); CreateWatcher(); Watcher.EnableRaisingEvents = true; #if HRVC_DEBUG Logger.log.Info($"Registering controller {controller.GetInstanceID()}:{controller.Name}"); #endif return(true); }
internal bool UnbindController(IHotReloadableController controller) { if (controller == null) { #if HRVC_DEBUG Logger.log.Critical($"Unable to unbind controller, it is null."); #endif return(false); } return(UnbindController(controller.GetInstanceID())); }