internal IList executeStored(String storedProcedure, Serializable objeto, List <SqlParameter> extraParameters)
        {
            List <string> parameterNames = getProcedureParameterNames(storedProcedure);

            List <SqlParameter> parameters = new List <SqlParameter>();

            extraParameters.ForEach(o => parameterNames.Remove(o.ParameterName));

            extraParameters.ForEach(o => parameters.Add(o));

            foreach (string parameterName in parameterNames)
            {
                object dataValue = objeto.getDataValue(parameterName);

                if (dataValue != null)
                {
                    if (typeof(Serializable).IsAssignableFrom(dataValue.GetType()))
                    {
                        Serializable serializableProperty = (Serializable)dataValue;
                        dataValue = serializableProperty.getPkValue();
                    }
                }

                DataBase.Instance.agregarParametro(parameters, parameterName, dataValue);
            }

            return(executeStored(storedProcedure, parameters));
        }