From: Fabio Maulo 
  Sent: Monday, September 10, 2007 12:32 AM

  Dicho de paso dos cosas: 
  1) Esto Reflection.Assembly.Load no hace falta porque, cuando haya arreglado 
el asunto, ya lo hace NH
  2) No hagas esas cosas caseras usando reflection de forma completamente 
inecesaria. 
  2a) Ri queres algo profesional estudiate IoC mejor conocido como Dependency 
Injection y luego ejeí entre:
  - Enterprise Library
  - Spring.NET
  - Castle.Windsor  ( <- )
Gracias Fabio, no me di cuenta que no tenía nada que ver con NH, el problema es 
lo que comentaba Darío.

Pasando a tus observaciones:
1) Sé que estoy buscando dos veces el assembly, pero no sé cómo sacarlo desde 
NH y lo necesito en la línea 
   Clase = CapaDatos.GetType("AccesoDatos." & ClaseCapaDatos(Tipo))

Lo que puedo hacer, aunque me parece que es lo mismo, es esto:

Public Sub New(ByVal Tipo As TipoABM)
  CapaDatos = Reflection.Assembly.Load("AccesoDatos")
  Clase = CapaDatos.GetType("AccesoDatos." & ClaseCapaDatos(Tipo))
  Entidad = Activator.CreateInstance(Clase)

  cfg = New Configuration()
  cfg.AddAssembly(CapaDatos)
  sessionFactory = cfg.BuildSessionFactory()
End Sub

2) No creo que esté usando reflection de manera innecesaria. El código que 
copié obviamente no está completo, saqué todo lo que no estaba relacionado al 
problema.
Uso reflection porque me ahorro mucho código y además considero que tengo menos 
probabilidades de error porque todo el código se vuelve genérico y solo tengo 
que configurar algunos parámetros y constantes.
Entiendo que no es lo ideal porque hace pesada la ejecución de la aplicación, 
pero no es algo significativo en este caso.

2a) Voy a tener muy en cuenta esa sugerencia y aprender sobre DI, pero en esta 
aplicación todavía no porque no me dan los tiempos.

Saludos,
Christian
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups-beta.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a