Es posible guardar un objeto propio en la session

30/05/2005 - 10:05 por Jose Cortijo | Informe spam
Buenos dias a todos,

he creado una clase q me permite almacenar dos arrays y un string y quiero
guardar todo el objeto en si en una variable de session,
el codigo ASP que crea la clase es el siguiente, posteriromente hago un
include en al ASP donde uso dicha clase.

<%
Class Parametros

private sUrl
private aParametros
private aValorParametros

private indice
private dimension

Private Sub Class_Initialize()

End Sub

Public Property Let UrlDestino( pUrl )
response.Write("Guardamosw la url -->" & pUrl)
sUrl = pUrl
End Property

Public Default Property Get obtenerUrlDestino()
obtenerUrlDestino = sUrl
End Property

Public Function Create( pDimension )

redim aParametros(pDimension)
redim aValorParametros(pDimension)
dimension = pDimension
indice = 0

End Function

Public Function guardarParametro( pParametro, pValor)
response.Write("<br>Guardando " &pParametro& " - " &pValor& " con indice "
&indice& " y dimension " & dimension )
if indice > dimension then
response.Write("Error al guardar el parametro " & pParametro & " por
exceder la dimension del objeto ")
else
aParametros(indice) = pParametro
aValorParametros(indice)= pValor
indice = indice + 1
end if

End Function

Public Function obtenerParametros()

response.write("<br>La URL destino es :" & sUrl & "<br>Los parametros
son:")
for i=0 to indice-1
response.Write("<br>" & aParametros(i) & " = " & aValorParametros(i) )
next

End Function

End Class
%>

posteriormente en otro ASP creo un objeto del tipo Parametros, le doy
valores y lo guardo en la session de la siguiente manera:

Dim oParam
Set oParam = New Parametros
oParam.Create 2
oParam.UrlDestino = "http://www.google.es"
oParam.guardarParametro "pNombre","Jose"
oParam.guardarParametro "pApellidos","Martines"
session("parametros") = oParam

en otro ASP intento recoger el objeto de la siguiente manera

dim prueba
Set prueba = New Parametros
prueba = session("parametros")

y me da un error
Error de Microsoft VBScript en tiempo de ejecución error '800a01a8'

Se requiere un objeto: 'http://www.google.es'

viendo el contenido de la session , veo que solo ha guardado ciertos texto
que he ido mostrando con response.write dentro del objeto.

¿hay que poner algun comando especial para subir el objeto completo a la
session? ¿ como lo recupero luego?

Muchas gracias por cualquier sugerencia.

Un saludo a todos
 

Leer las respuestas

#1 Manuel Vera
30/05/2005 - 16:20 | Informe spam
1.- Lo que estas haciendo NO es recomendable por asunto de performance del
servidor web.
2.- Si lo puedes hacer, creo que sería así:
... tu codigo es...
posteriormente en otro ASP creo un objeto del tipo Parametros, le doy
valores y lo guardo en la session de la siguiente manera:

Dim oParam
Set oParam = New Parametros
oParam.Create 2
oParam.UrlDestino = "http://www.google.es"
oParam.guardarParametro "pNombre","Jose"
oParam.guardarParametro "pApellidos","Martines"
'''AQUI:
SET session("parametros") = oParam
...fin...
creo que asi funcionaria

3.- Lo que te esta sucediendo, a mi forma de ver, es que a la session le
estas asignando la propiedad por DEFAULT de tu objeto: sURL

Finalmente, esta practica NO es recomendable de todos modos.

Salu2
MV

Preguntas similares