public void SetValue(string name, object value) { if (_valueSetters.TryGetValue(name, out Action <object> setter)) { setter(value); } else if (_alternateValues != null) { _alternateValues.SetValue(name, value); } else { throw new ArgumentException("Unknown value name."); } }
[IndexerName("Item")] // Technically not required, but cleaner. public object this[string name] { get { return(_localValues.GetValue(name)); } set { _localValues.SetValue(name, value); } }