public IResult Invoke(XmlTestType opName, IGeometry geometry, Object[] args)
        {
            IGeometryFunction func = registry.Find(opName.ToString(), args.Length);
            if (func == null)
                return defaultOp.Invoke(opName, geometry, args);

            return Invoke(func, geometry, args);
        }
 /// <summary>
 /// Gets the return type for the operation
 /// </summary>
 /// <param name="op">The name of the operation</param>
 /// <returns>The return type of the operation</returns>
 public Type GetReturnType(XmlTestType op)
 {
     string opName = op.ToString();
     IGeometryFunction func = registry.Find(opName);
     if (func == null)
         return defaultOp.GetReturnType(op);
     return func.ReturnType;
 }
        //public Type GetReturnType(String opName)
        //{
        //    IGeometryFunction func = registry.Find(opName);
        //    if (func == null)
        //        return defaultOp.GetReturnType(opName);
        //    return func.ReturnType;
        //}

        public IResult Invoke(XmlTestType opName, Geometry geometry, Object[] args)
        {
            IGeometryFunction func = registry.Find(opName.ToString(), args.Length);

            if (func == null)
            {
                return(defaultOp.Invoke(opName, geometry, args));
            }

            return(Invoke(func, geometry, args));
        }
        /// <summary>
        /// Gets the return type for the operation
        /// </summary>
        /// <param name="op">The name of the operation</param>
        /// <returns>The return type of the operation</returns>
        public Type GetReturnType(XmlTestType op)
        {
            string            opName = op.ToString();
            IGeometryFunction func   = registry.Find(opName);

            if (func == null)
            {
                return(defaultOp.GetReturnType(op));
            }
            return(func.ReturnType);
        }
 /// <summary>
 /// Invokes the named operation
 /// </summary>
 /// <param name="op">The name of the operation</param>
 /// <param name="geometry">The geometry to process</param>
 /// <param name="args">The arguments to the operation (which may be typed as Strings)</param>
 /// <exception cref="Exception">If some error was encountered trying to find or process the operation</exception>
 public IResult Invoke(XmlTestType op, IGeometry geometry, Object[] args)
 {
     string opName = op.ToString();
     bool isBufferOp = opName.Equals("buffer", StringComparison.InvariantCultureIgnoreCase);
     // if not a buffer op, do the default
     if (!isBufferOp)
     {
         return _chainOp.Invoke(opName, geometry, args);
     }
     ParseArgs(args);
     return InvokeBufferOpValidated(geometry /*, args */);
 }
        /// <summary>
        /// Invokes the named operation
        /// </summary>
        /// <param name="op">The name of the operation</param>
        /// <param name="geometry">The geometry to process</param>
        /// <param name="args">The arguments to the operation (which may be typed as Strings)</param>
        /// <exception cref="Exception">If some error was encountered trying to find or process the operation</exception>
        public IResult Invoke(XmlTestType op, IGeometry geometry, Object[] args)
        {
            string opName     = op.ToString();
            bool   isBufferOp = opName.Equals("buffer", StringComparison.InvariantCultureIgnoreCase);

            // if not a buffer op, do the default
            if (!isBufferOp)
            {
                return(_chainOp.Invoke(opName, geometry, args));
            }
            ParseArgs(args);
            return(InvokeBufferOpValidated(geometry /*, args */));
        }
 /// <summary>
 /// Invokes the named operation.
 /// </summary>
 /// <param name="opName">The name of the operation</param>
 /// <param name="geometry">The geometry to process</param>
 /// <param name="args">The arguments to the operation (which may be typed as Strings)</param>
 /// <returns>The result</returns>
 /// <exception cref="Exception">If some error was encountered trying to find or process the operation</exception>
 public IResult Invoke(XmlTestType opName, IGeometry geometry, object[] args)
 {
     return(Invoke(opName.ToString(), geometry, args));
 }
 public Type GetReturnType(XmlTestType op)
 {
     return(GetReturnType(op.ToString()));
 }
 public Type GetReturnType(XmlTestType op)
 {
     return GetReturnType(op.ToString());
 }
 /// <summary>
 /// Invokes the named operation.
 /// </summary>
 /// <param name="opName">The name of the operation</param>
 /// <param name="geometry">The geometry to process</param>
 /// <param name="args">The arguments to the operation (which may be typed as Strings)</param>
 /// <exception cref="Exception">If some error was encountered trying to find or process the operation</exception>
 public IResult Invoke(XmlTestType opName, IGeometry geometry, Object[] args)
 {
     return Invoke(opName.ToString(), geometry, args);
 }