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);
            }
        }