Exito¡¡¡
Muchas Gracias Sergio, salio todo bien....

On 23 ene, 01:59, Kash <[email protected]> wrote:
> Si te fijas en la implementación de mi clase, al final del todo hay un
> método estático que devuelve una instancia de la clase, tu no has creado ese
> método. En realidad podrías instanciar la clase directamente desde tu
> NHibernateHelper con la sentencia que hay en el return de ese método, pero a
> mi me gusta hacerlo de esta forma.
> Eso no está implementado en el ejemplo del link que te pasé por que es cosa
> mía.
>
>         /// <summary>
>         /// Devuelve una instancia correcta de esta misma clase
>         /// </summary>
>         public static DALGeneralConfigurationSection CurrentConfiguration
>         {
>             get
>             {
>                 return
> (DALGeneralConfigurationSection)ConfigurationManager.GetSection("DALGeneral ")
> ;
>             }
>         }
>
> El 22 de enero de 2009 21:46, Jose Fabricio Rojas
> <[email protected]>escribió:
>
>
>
>
>
> > Hola Sergio,
> > Implemente una clase que me administre las secciones de configuración
> > del web config.
> > Imports System.Configuration
>
> > Public NotInheritable Class NHibernateConfigurationSection
> >    Inherits ConfigurationSection
>
> >    Private Shared _Properties As ConfigurationPropertyCollection
> >    Private Shared strHibernateFile As New ConfigurationProperty
> > ("hibernate", GetType(String), "hibernate.cfg.xml",
> > ConfigurationPropertyOptions.IsRequired)
> >    Private Shared strMappingPath As New ConfigurationProperty
> > ("Mapping", GetType(String), "",
> > ConfigurationPropertyOptions.IsRequired)
>
> >    Public Sub New()
> >        _Properties = New ConfigurationPropertyCollection()
> >        _Properties.Add(strHibernateFile)
> >        _Properties.Add(strMappingPath)
> >    End Sub
>
> >    Protected Overrides ReadOnly Property Properties() As
> > ConfigurationPropertyCollection
> >        Get
> >            Return _Properties
> >        End Get
> >    End Property
>
> >    Protected Overrides Function GetRuntimeObject() As Object
> >        Return MyBase.GetRuntimeObject()
> >    End Function
>
> >    <StringValidator(InvalidCharacters:=" ~...@#$%^&*()[]{}/;'|\",
> > MinLength:=1, MaxLength:=60)> _
> >    Public Property HibernateFile() As String
> >        Get
> >            Return CStr(Me("hibernate"))
> >        End Get
> >        Set(ByVal value As String)
> >            Me("hibernate") = value
> >        End Set
> >    End Property
>
> >    <StringValidator(InvalidCharacters:=" ~...@#$%^&*()[]{};'|",
> > MinLength:=1, MaxLength:=60)> _
> >    Public Property MappingPath() As String
> >        Get
> >            Return CStr(Me("Mapping"))
> >        End Get
> >        Set(ByVal value As String)
> >            Me("Mapping") = value
> >        End Set
> >    End Property
>
> > End Class
> > y la llamo desde mi Helper de esta manera:
> > Public Class NHibernateHelper
>
> >    Private Const CurrentSessionKey As String =
> > "nhibernate.current_session"
>
> >    Public Shared SessionFactory As ISessionFactory
>
> >    Shared Sub New()
> >        Try
> >            Dim configurationSection As
> > NHibernateConfigurationSection.CurrentConfiguration ' Esta linea no me
> > reconoce
> >            log4net.Config.XmlConfigurator.Configure()
> >            Dim cfg As Configuration = New Configuration
> >            cfg.Configure(configurationSection.HibernateFile)
> >            Dim path As New DirectoryInfo(CStr
> > (configurationSection.MappingPath))
> >            cfg.AddDirectory(path)
> >            SessionFactory = cfg.BuildSessionFactory
> >        Catch ex As Exception
> >            Throw New Exception("NHibernate initializacion failed",
> > ex)
> >        End Try
> >    End Sub
> > .
> > .
> > .
> > End Class
>
> > Pero tengo un inconveniente no me reconoce esta propiedad
> > "CurrentConfiguration" de la clase que implemente , quizas estoy
> > obviando u olvidando algo,
> > espero me des luces...
> > Gracias nuevamente
>
> > On 22 ene, 12:33, Kash <[email protected]> wrote:
> > > No tengo mucho tiempo para comentar, en el link que te he enviado hay un
> > > ejemplo de creación de una clase que gestiona una sección de
> > configuración
> > > del web.config o app.config.
> > > Esa clase se puede utilizar desde cualquier capa, ensamblado, ... Yo lo
> > > estoy haciendo así y funciona perfectamente.
>
> > > Implemento esa clase, y la utilizo desde la capa de presentación (en mi
> > caso
> > > desde mi NHibernateHelper propio de esta forma:
>
> > >         public NHibernateHelper()
> > >         {
> > >             //Cargamos los datos del fichero de configuración
> > >             DALGeneralConfigurationSection cfg =
> > > DALGeneralConfigurationSection.CurrentConfiguration;
> > >             //Forma de acceder a la configuración XML de NHibernate y
> > crear
> > > un sessionFactory...
> > >             sessionFactory = new
> > > NHibernate.Cfg.Configuration().Configure(cfg.NHibernateConfigPath
> > > ).BuildSessionFactory();
> > >             currentSession = null;
> > >         }
>
> > > DALGeneralConfigurationSection es la clase de configuración
> > > cfg.NHibernateConfigPath es una propiedad de la sección de configuración
> > que
> > > gestiona la clase implementada.
>
> > > y así se especifica en el fichero de configuración:
>
> > > <?xml version="1.0" encoding="utf-8" ?>
> > > <configuration>
>
> > >   <configSections>
> > >     <section name="DALGeneral"
> > > type="Configuration.DataAccessLayer.DALGeneralConfigurationSection,
> > > Configuration, Version=4.0.0.1, Culture=neutral,
> > > PublicKeyToken=a5dcdbb4fcb73170" allowDefinition="Everywhere"
> > > allowExeDefinition="MachineToApplication" restartOnExternalChanges="true"
> > />
>
> > >   <DALGeneral nhibernateConfigPath="c:\test\hibernate.cfg.xml" />
>
> > > </configuration>
>
> > > Lo he puesto un poco deprisa, puede haber errores...
>
> > > El 22 de enero de 2009 18:13, Jose Fabricio Rojas
> > > <[email protected]>escribió:
>
> > > > Hola Sergio,
> > > > bueno gracias por link , pero crear las secciones de configuracion en
> > > > el web config no es problema ,sino leer sus valores desde otra capa
> > > > ( en mi caso , mi capa de acceso a datos)
> > > > Algo asi como lo que hace Enterprise Library en un paquete de Datos ,
> > > > cuando la la factoria abstracta Database obtiene la cadena de conexion
> > > > del web config solo con pasarle el nombre de la cadena de conexion.
>
> > > > On 22 ene, 12:02, Kash <[email protected]> wrote:
>
> >http://msdn.microsoft.com/es-es/library/system.configuration.configur...
> > > > > El 22 de enero de 2009 17:54, Jose Fabricio Rojas
> > > > > <[email protected]>escribió:
>
> > > > > > Hola gente
> > > > > > este es mi problema:
> > > > > > Previo: Sucede que mi aplicación tiene una parte de los archivos de
> > > > > > mapeo(hbm) incrustados y otra parte en una carpeta, esto debido a
> > que
> > > > > > los que están en la carpeta contienen consultas nombradas y es un
> > > > > > requerimiento personalizar y cambiar esas consultas nombradas sin
> > > > > > necesidad de un re-build a la aplicación.
> > > > > > Ahora mediante el BuildSessionFactory() yo cargo los archivos hbm
> > > > > > incrustados y mediante el cfg.AddDirectory(path) cargo los archivos
> > de
> > > > > > mapeo que se encuentran dentro de una ruta de disco duro.
> > > > > > Lo que estaba haciendo hasta ahora es crear una clave en el
> > registro y
> > > > > > colocar la ruta en la clave de registro , leer la clave para
> > obtener
> > > > > > el path en donde estaban los hbm y el archivo de configuracion de
> > NH
> > > > > > (hibernate.cfg.xml para mi caso)
> > > > > > Sucede que por "seguridad" se ha decidido cambiar esto
> > > > > > Problema:
> > > > > > Ahora en mi capa de acceso a datos tengo una clase que me
> > administra
> > > > > > las sesiones de NH y obtiene la ruta del archivo de configuracion y
> > > > > > ruta de la carpeta de los hbm no incrustados, y construye mis
> > sesiones
> > > > > > a partir de eso.
> > > > > > Lo que quisiera hacer es: Crear una seccion dentro del web.config
> > con
> > > > > > dos key, una donde apunte a la ruta de mi archivo de configuracion
> > y
> > > > > > otra clave donde apunte a mi carpeta que contiene los hbm no
> > > > > > incrustados.
> > > > > > Como puedo , o que clases utilizar para que que mi clase que
> > > > > > administra las sesiones vaya hasta el web.config(que esta en mi
> > capa
> > > > > > de presentacion web) y lea esas key y contruya la sesion de NH  a
> > > > > > partir de eso.
> > > > > > Estaria muy agradecido por su ayuda.
> > > > > > Un saludo desde Lima ,Peru
>
> > > > > --
>
> > > > > =================================
> > > > > Sergio Castillo Checa
>
> > > --
>
> > > =================================
> > > Sergio Castillo Checa
>
> --
>
> =================================
> Sergio Castillo Checa
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a