public void Execute(IContext context)
{
if (this.expression is DotExpression)
{
DotExpression dexpr = (DotExpression)this.expression;
var target = (DynamicObject)dexpr.Expression.Evaluate(context);
target.RemoveValue(dexpr.Name);
return;
}
context.RemoveValue(((VariableExpression)this.expression).Name);
}
public void ExecuteDeleteCommand() { DynamicObject dynobj = new DynamicObject(); dynobj.SetValue("name", "Adam"); dynobj.SetValue("age", 800); DeleteCommand cmd = new DeleteCommand(new DotExpression(new VariableExpression("adam"), "name")); var context = new Context(); context.SetValue("adam", dynobj); cmd.Execute(context); Assert.IsTrue(dynobj.HasName("age")); Assert.IsFalse(dynobj.HasName("name")); }