COM con System.EnterpriseServices.ServicedComponent !!!!!!!!!

11/10/2004 - 22:55 por Jaimito | Informe spam
Hola compañeros...

¿A qué se debe que cada vez que invoque el método ContextUtil.SetComplete
dentro de una clase que herede de
"System.EnterpriseServices.ServicedComponent" se vuelva a crear una instancia
de la clase?

Me explico mejor:

Tengo una clase llamada por ejemplo "Manager" que hereda de
System.EnterpriseServices.ServicedComponent, esta clase tiene un método
público llamado "Save", el cual llama al método ContextUtil.SetComplete si la
operación con una base de datos es satisfactoria.

Ahora; tengo el siguiente ejemplo de código:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim om As Manager

'instancio un objeto de la clase "Manager"
om = New Manager()

'configuro una propiedad cualquier
om.Usuario = "super"

'llamo
om.Save() 'primer llamado
om.Save() 'segundo llamado

om = Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Resulta y pasa que cuando se hace el primer llamado al método "Save()", se
vuelve a crear una nueva instancia de la clase "Manager()", y pues como es
lógico se pierden todas las propiedades y objetos que haya configurado dentro
de la clase.

¿Este es el comportamiento habitual?
¿Es posible cambiar este comportamiento para que no se destruya y genere una
nueva instancia?

Necesito mantener los datos de las propiedades siempre.

Gracias..
 

Leer las respuestas

#1 SqlRanger
12/10/2004 - 09:06 | Informe spam
Eso es porque si el objeto requiere transacciones entonces también requiere
JustInTimeActivation. Si los métodos están marcados con el atributo
<AutoComplete()> el objeto se crea y se destruye en cada llamada al método.
Deberías quitar el atributo <AutoComplete()> en los métodos y propiedades
que no quieres que tengan este comportamiento.

Saludos:

Jesús López
MVP


"Jaimito" escribió en el mensaje
news:
Hola compañeros...

¿A qué se debe que cada vez que invoque el método ContextUtil.SetComplete
dentro de una clase que herede de
"System.EnterpriseServices.ServicedComponent" se vuelva a crear una


instancia
de la clase?

Me explico mejor:

Tengo una clase llamada por ejemplo "Manager" que hereda de
System.EnterpriseServices.ServicedComponent, esta clase tiene un método
público llamado "Save", el cual llama al método ContextUtil.SetComplete si


la
operación con una base de datos es satisfactoria.

Ahora; tengo el siguiente ejemplo de código:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim om As Manager

'instancio un objeto de la clase "Manager"
om = New Manager()

'configuro una propiedad cualquier
om.Usuario = "super"

'llamo
om.Save() 'primer llamado
om.Save() 'segundo llamado

om = Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Resulta y pasa que cuando se hace el primer llamado al método "Save()", se
vuelve a crear una nueva instancia de la clase "Manager()", y pues como es
lógico se pierden todas las propiedades y objetos que haya configurado


dentro
de la clase.

¿Este es el comportamiento habitual?
¿Es posible cambiar este comportamiento para que no se destruya y genere


una
nueva instancia?

Necesito mantener los datos de las propiedades siempre.

Gracias..

Preguntas similares