Guardar tipo en la base de datos

26/10/2008 - 20:17 por Carlos | Informe spam
Necesito guardar unos tipos de clase en la base de datos pero no veo como
hacerlo, quiero decir valores de tipo Type.

Podria guardarlos como string pero para poder usarlos como tipo despues como
hago?

Preguntas similare

Leer las respuestas

#6 Carlos
27/10/2008 - 21:46 | Informe spam

Vale, pero fíjate que eso no concuerda con la pregunta original:
dijiste que querías guardar el Type, pero lo del CreateInstance es para
crear un objeto descrito por su Type; no tiene mucho sentido usarlo cuando
lo que quieres es salvar el propio System.Type en sí mismo, sino cuando
quieres recrear un objeto arbitrario cuyo Type conoces, cosa que
ciertamente es útil pero no es lo que pediste en tu pregunta.




Si pero tambien pregunte:

"Podria guardarlos como string pero para poder usarlos como tipo despues
como
hago?"

El createinstance sirve para convertir el string en el type que para los
fines equivale a lo que necesito. No ?


De todos modos gracias.
Respuesta Responder a este mensaje
#7 Alberto Poblacion
28/10/2008 - 08:30 | Informe spam
"Carlos" <carl> wrote in message
news:
"Podria guardarlos como string pero para poder usarlos como tipo despues
como hago?"

El createinstance sirve para convertir el string en el type que para los
fines equivale a lo que necesito. No ?



No, el CreateInstance no convierte el string en el Type, sino en un
Objeto cuyo GetType() resulta ser un System.Type cuyo nombre es el mismo que
está escrito en el string. Es decir, sube un nivel más en la jerarquía. En
otras palabras, no es lo mismo "un Type" que "un Objeto que tiene ese Type".
De ahí la confusión que me ocasionó la pregunta que escribiste. Tal como
estaba redactada, yo interpretaba que lo que querías salvar era el propio
Type, cuando en realidad lo que querías era "salvar la información necesaria
para poder crear a partir de ella un Objeto de un Type específico (en lugar
de crear el propio Type)".
Respuesta Responder a este mensaje
#8 Carlos
29/10/2008 - 00:18 | Informe spam
Pero que cosa tan complicada :)..

De todos modos si decido serializar el tipo, se puede hacer lo mismo con los
parametros que decida enviarle a su constructor ?

Gracias


"Alberto Poblacion"
escribió en el mensaje news:%
"Carlos" <carl> wrote in message
news:
"Podria guardarlos como string pero para poder usarlos como tipo despues
como hago?"

El createinstance sirve para convertir el string en el type que para los
fines equivale a lo que necesito. No ?



No, el CreateInstance no convierte el string en el Type, sino en un
Objeto cuyo GetType() resulta ser un System.Type cuyo nombre es el mismo
que está escrito en el string. Es decir, sube un nivel más en la
jerarquía. En otras palabras, no es lo mismo "un Type" que "un Objeto que
tiene ese Type".
De ahí la confusión que me ocasionó la pregunta que escribiste. Tal
como estaba redactada, yo interpretaba que lo que querías salvar era el
propio Type, cuando en realidad lo que querías era "salvar la información
necesaria para poder crear a partir de ella un Objeto de un Type
específico (en lugar de crear el propio Type)".



Respuesta Responder a este mensaje
#9 Alberto Poblacion
29/10/2008 - 08:12 | Informe spam
"Carlos" <carl> wrote in message
news:
Pero que cosa tan complicada :)..

De todos modos si decido serializar el tipo, se puede hacer lo mismo con
los parametros que decida enviarle a su constructor ?



Efectivamente, parece que la cosa es complicada. ¿Qué constructor? ¿El
del Type? ¡Pero si el único constructor de System.Type es "protected" y
además no toma ningún parámetro!

Y si lo que quieres es serializar un objeto arbitrario, entonces no hace
falta serializar su tipo, porque ya lo guarda internamente el proceso de
serialización. La serialización también salva todo el estado interno del
objeto, que supuestamente es lo que se configura durante el proceso de
construcción. Por eso al deserializar, el deserializador siempre usa el
constructor predeterminado, sin ningún parámetro, ya que al deserializarse
todo el contenido del objeto se entiende que no se necesita que el
constructor reciba ningún dato nuevo (ya estaban todos serializados).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida