private void FirePropertyChange(ConfigUpdateEventArgs e) { if (WriteTempFile != null) { WriteTempFile(e); } if (ChangeEvents != null) { ChangeEvents(e); } }
private bool VetoPropertyChange(ConfigUpdateEventArgs e) { if (ListenerEvent == null) { return true; } foreach (Func<ConfigUpdateEventArgs, bool> v in ListenerEvent.GetInvocationList()) { if (!v(e)) { return false; } } return true; }
public int Set(string propertyName, object val) { PropertyName property = GetPropertyName(propertyName); if (property != null && property.CanWrite) { var oldVal = Get(propertyName); object convertObj = null; try { convertObj = property.PropertyType == null ? val : Convert.ChangeType(val, property.PropertyType); } catch { return 4; } var pce = new ConfigUpdateEventArgs() { Key = propertyName, OldValue = oldVal, NewValue = convertObj }; if (VetoPropertyChange(pce)) { FirePropertyChange(pce); SetValue(propertyName, convertObj); UpdateLogDic[propertyName] = oldVal; return 1; } return 2; } return 3; }