private IEnumerable <SettingsProperty> GetSettingsProperties(object baseObject, Type type, SettingsPropertyName path, PropertyInfo basePropInfo, object context) { if (Reflector.HasParameterLessDefaultConstructor(type)) { object obj = Activator.CreateInstance(type); ObjDict.Add(path, context, obj); if (baseObject != null) { basePropInfo.SetValue(baseObject, obj); } foreach (var tuple in Reflector.GetNameAndType(type)) { if (Reflector.IsSimpleType(tuple.Item2)) { yield return(new SettingsProperty(path + tuple.Item1, tuple.Item2, null) { InternalContext = new Dictionary <string, object> { { "__SettAccessor", tuple.Item3 }, } }); } else { foreach (var settingsProperty in GetSettingsProperties(obj, tuple.Item2, path + tuple.Item1, tuple.Item3, context)) { yield return(settingsProperty); } } } } }
public void Add(SettingsPropertyName settName, object context, object obj) { _InnerDict.Add(Tuple.Create(settName, context), obj); }
internal object Get(SettingsPropertyName settName, object context) { return(_InnerDict[Tuple.Create(settName, context)]); }
internal DynamicSettingsObject(SettingsRepository settRepo, SettingsPropertyName root, TSETT context) { _SettRepo = settRepo; _SettPropName = root; _Context = context; }