private static IConfigProperty <T> GetOrAddProperty <T>(IConfigPropertyBase property) { if (ConfigPropertyObserver.GetOrAddProperty(property) is IConfigProperty <T> result) { return(result); } throw new ArgumentException(@$ "Config already contains another property with same path '{property.Path}' and different generic type.", nameof(property)); }
public Boolean RemoveValue(IReadOnlyConfigPropertyBase property) { ConfigPropertyObserver.ThrowIfPropertyNotLinked(property); return(RemoveValue(property.Key, property.Sections)); }
public Boolean KeyExist(IReadOnlyConfigPropertyBase property) { ConfigPropertyObserver.ThrowIfPropertyNotLinked(property); return(KeyExist(property.Key, property.Sections)); }
public T GetOrSetValue <T>(IReadOnlyConfigProperty <T> property, T value) { ConfigPropertyObserver.ThrowIfPropertyNotLinked(property); return(GetOrSetValue(property.Key, value, property.CryptKey, property.Converter, property.Sections)); }
public T GetOrSetValue <T>(IReadOnlyConfigProperty <T> property) { ConfigPropertyObserver.ThrowIfPropertyNotLinked(property); return(GetOrSetValue(property, property.DefaultValue)); }
public void ClearProperties() { ForEachProperty(ClearProperty); ConfigPropertyObserver.ClearProperties(this); }
private void ForEachProperty(Action <IReadOnlyConfigPropertyBase> action) { ConfigPropertyObserver.ForEachProperty(this, action); }
public void RemoveProperty(IReadOnlyConfigPropertyBase property) { ConfigPropertyObserver.ThrowIfPropertyNotLinkedTo(this, property); ConfigPropertyObserver.RemoveProperty(property); ClearProperty(property); }
public IEnumerable <IReadOnlyConfigPropertyBase> GetProperties() { return(ConfigPropertyObserver.GetProperties(this)); }