public object GetValue(string name)
{
if (!this.values.ContainsKey(name))
{
if (this.parent != null)
return this.parent.GetValue(name);
return null;
}
return this.values[name];
}
private Context GetOrCreateChildEnvironment(Context environment, string envname) { var names = envname.Split('.'); foreach (var name in names) { var result = environment.GetValue(name); if (result != null) environment = (Context)result; else { var context = new Context(environment); environment.SetValue(name, context); environment = context; } } return environment; }