public ActionContextFacade ToActionContextFacade(IFrameworkFacade facade, INakedObjectsFramework framework)
        {
            var ac = new ActionContextFacade {
                Action            = new ActionFacade(Action, facade, framework, OverloadedUniqueId ?? ""),
                VisibleParameters = VisibleParameters.Select(p => p.ToParameterContextFacade(facade, framework)).ToArray()
            };

            return(ToContextFacade(ac, facade, framework));
        }
        public ActionContextSurface ToActionContextSurface(INakedObjectsSurface surface, INakedObjectsFramework framework)
        {
            var ac = new ActionContextSurface {
                Action            = new NakedObjectActionWrapper(Action, surface, framework, OverloadedUniqueId ?? ""),
                VisibleParameters = VisibleParameters.Select(p => p.ToParameterContextSurface(surface, framework)).ToArray()
            };

            return(ToContextSurface(ac, surface, framework));
        }