Пример #1
0
		public ConfigValue[] GetValues(params ConfigParameter[] parameters)
		{
			if (Parent != null)
			{
				// delegate entirely to the parent
				var parentValues = Parent.GetValues(parameters);

				// update the dictionary with values from the parent
				lock (_lockObject)
				{
					foreach (var parentValue in parentValues)
					{
						_values[parentValue.Parameter] = parentValue;
					}
				}

				return parentValues;
			}

			// No parent, so our values are the single point of truth.
			var values = new ConfigValue[parameters.Length];
			lock (_lockObject)
			{
				for (int index = 0; index < values.Length; ++index)
				{
					values[index] = GetValueWithoutLock(parameters[index]);
				}
			}
			return values;
		}
Пример #2
0
		public void SetValue(ConfigParameter parameter, string value)
		{
			lock (_lockObject)
			{
				if (Parent != null)
				{
					Parent.SetValue(parameter, value);
				}
				_values[parameter] = new ConfigValue(parameter, value, true);
			}
		}