public static void RegisterForSettingsChange(string settingName, EventHandler functionToCallOnChange, ref EventHandler functionThatWillBeCalledToUnregisterEvent) { if (!functionsToCallOnChange.ContainsKey(settingName)) { functionsToCallOnChange.Add(settingName, new RootedObjectEventHandler()); } RootedObjectEventHandler rootedEvent = functionsToCallOnChange[settingName]; rootedEvent.RegisterEvent(functionToCallOnChange, ref functionThatWillBeCalledToUnregisterEvent); }