Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   instancias de clases delphi.net (https://www.clubdelphi.com/foros/showthread.php?t=43422)

karocs 10-05-2007 21:08:49

instancias de clases delphi.net
 
Saludos

Estamos desarrollando un proyecto en asp.net con delphi y tengo una clase llamada TConexion en una unidad llamada conexion, esta la utilizo en la mayoria de la pagina, la pregunta es que si hay que instanciar la case TConexion en cada página que se use o hay alguna forma de instanciala solo una vez para todas las página..

agradeceria mucho, es supergente..

radaalvaro 11-05-2007 20:09:13

instancias
 
karocs si es posible, el patron de Diseño Singleton hace eso.

Una aplicación práctica del Patron podria ser la siguiente.

Código Delphi [-]
Interface
type
TConexion = class
                 private
                   // AQUI TODOS LOS METODOS QUE NECESITES.  
                   class var Instancia :TConexion;
                 public
                   //AQUI TODOS LOS METODOS QUE NECESITES
                   Class Function DevuelveInstancia:TConexion;
                 end;
Implementation
 
Class Function TConexion.DevuelveInstancia:TConexion;
Begin
    if Instancia=nil then
        Instancia := TConexion.Create;
 
    result := Instancia;
 
   //Aqui se puede observar que solo se creara una instancia en caso de que 
   //la Varialble Instancia no este Instanciada, Si Instancia<> nil significa que 
   //alguien ya la creo entonces se devuelve la que ya esta creada.
End

Espero haber sido claro y no haberte enredado mucho.

Saludos.

karocs 14-05-2007 18:06:36

Saludos

gracias por responder...:)

puedo entonces intanciar la clase por ejemplo en el evento Sesion_Start del global asax o en donde seria mas recomendable..?

otra pregunta si lo hacemos asi estariamos compartiendo la misma conexion para todos los usuarios que se conecten ?..

gracias de nuevo...

__hector 16-05-2007 16:54:06

No importa en que sitio 'instancies' la conexion, ya que siempre habra solo una referencia a la misma en toda la aplicacion. Se creara en la primera llamada, y luego existira mientras exista el AppDomain de la aplicacion web que estas ejecutando.

Puedes hacerlo en el Session_Start, o Application_Start, o incluso en cualquier clase que tengas. No marcara ninguna diferencia (en cuanto a usabilidad).


La franja horaria es GMT +2. Ahora son las 13:35:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi