public void AddDecorator(Action <T> action, string name) { if (action == null) { throw new ArgumentNullException("action"); } if (name == null) { throw new ArgumentNullException("name"); } if (Inner == null) { Inner = new Decorator <T>(action, name); } else { Inner.AddDecorator(action, name); } }