Gracias Toolk, me explico, tengo el desarrollo Web, Presentación, Negocio y Datos, Presentación Interactúa con Negocio, y Negocio con Datos.
En la capa de Datos tengo métodos que Stored Procedure, actualmente NO usamos Web Services, un ejemplo de cómo se comuncian;
Código:
Capa de Datos:
public DataTable ObtenerDatos(string ProcedimientoAlmacenado, SqlParameter[] Parametros)
{
//Aquí está el código que ejecuta el sp, no lo puse porque es largo.
}
Código:
Capa de Negocio:
Este método invoca a ObtenerDatos de la capa de Datos y le mando el Stored y un arreglo de Parámetros.
public DataTable GetMenu(Hashtable Param)
{
SqlParameter sql1 = new SqlParameter("@Usuario", Param[1]);
SqlParameter sql2 = new SqlParameter("@Sesion", Param[2]);
SqlParameter sql3 = new SqlParameter("@ProyectoID", Param[3]);
SqlParameter sql4 = new SqlParameter("@App", Param[4]);
return db.ObtenerDatos ("spS_GetMenu_New", new SqlParameter[] { sql1, sql2, sql3, sql4 });
}
Código:
Capa de Presentación:
Este método invoca a la capa de Negocio e invoca el método GetMenu, le manda un HasTable con los parámetros.
void GetMenu()
{
try
{
Param.Clear();
Param.Add(1, _clsLocal.User);
Param.Add(2, _clsLocal.Sesion);
Param.Add(3, ProyectoID);
Param.Add(4, Settings.Default.App);
dtMenu = _clsMenuNegocio. GetMenu (Param);
}
catch (Exception ex)
{ throw ex; }
}
Hasta aquí todo bien, pero cuando quiero usar Web Services porque las aplicaciones web y porque así lo están solicitando, yo lo estructuré así:
Mis métodos de la capa de Datos los puse en un Web Sevice y todo bien.
Los Métodos de la capa de Negocio los puse en otro Web Service.
Y bueno tengo mi capa de presentación con mis aspx.
Entonces la Capa de Presentación consume WebService Negocio, WebService Negocio consume métodos de WebService Datos.-
Mi problema lo tengo en que Negocio le envía un arreglo sqlParameter[] a la capa de Datos pero me da error, no se cual sea la manera mas practica de: 1: Que la capa de Datos reciba los parámetros y 2: la manera enviarle esos parámetros desde la capa de Negocio.
Espero haberme dado a entender.
De antemano muchas gracias