Hola,
tengo un problema muy raro a mi entender.
Como soy bastante nuevo en esto primero escribo el código de la forma más 
fácil, pero después lo mejoro y uso Reflection para que el desarrollo sea más 
rápido.

El problema en concreto es que en la línea cfg.AddAssembly("AccesoDatos") me 
genera este error:

NHibernate.MappingException "Could not add assembly AccesoDatos"
y en InnerException, System.IO.FileNotFoundException "Could not load file or 
assembly 'AccesoDatos' or one of its dependencies. El sistema no puede hallar 
el archivo especificado.":"AccesoDatos"

Lo raro es que esto pasa cuando elimino una función que ya no uso (de eso estoy 
seguro).

Más abajo les copio algo de código, si necesitan ver algo más díganme.
La función que reemplacé es Listar(), y la versión anterior esta como 
Listar_antigua() (esta última si la elimino genera el error y si no anda bien, 
pero repito, no la uso en ninguna parte)

Hice varias pruebas y fui "limpiando" el código de Listar_antigua() hasta 
aislar el problema, y encontré que con eliminar la línea Grilla.DataSource = 
Sesion.CreateCriteria(GetType(Zonas)) ya provoca ese error.
Lo otro que me parece raro es que el error se genera al instanciar el objeto y 
que todavía no se llama a ninguna de esas funciones.

Gracias desde ya


Imports System
Imports NHibernate

Imports NHibernate.Cfg

Imports NHibernate.Expression

Imports AccesoDatos

Public Class ABM

Private sessionFactory As ISessionFactory = Nothing

Private cfg As Configuration = Nothing

Dim CapaDatos As Reflection.Assembly

Dim Clase As Type = Nothing

Dim Entidad As Object = Nothing

Public Sub New(ByVal Tipo As TipoABM)

cfg = New Configuration()

cfg.AddAssembly("AccesoDatos")

sessionFactory = cfg.BuildSessionFactory()

CapaDatos = Reflection.Assembly.Load("AccesoDatos")

Clase = CapaDatos.GetType("AccesoDatos." & ClaseCapaDatos(Tipo))

Entidad = Activator.CreateInstance(Clase)

End Sub

Public Function Listar() As IList

Dim Sesion As ISession = Nothing

Dim Criterio As ICriteria

Dim Resultados As IList = Nothing

Try

Sesion = sessionFactory.OpenSession()

Criterio = Sesion.CreateCriteria(Clase)

Resultados = Criterio.List()

If Resultados.Count = 0 Then

Resultados = Nothing

End If

Catch ex As Exception

MessageBox.Show(ex.Message)

Finally

If Sesion IsNot Nothing Then Sesion.Close()

End Try

Return Resultados

End Function

Public Sub Listar_antigua(ByRef Grilla As DataGridView)

Dim Sesion As ISession = Nothing

Try

Sesion = sessionFactory.OpenSession()

Grilla.DataSource = Sesion.CreateCriteria(GetType(Zonas))

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try

End Sub

End Class


===========================================================
Esa clase la uso desde un form con este código

Public Class frmABM

Private FuncionesABM As ABM

Public Sub New(ByVal Tipo As TipoABM)

InitializeComponent()

FuncionesABM = New ABM(Tipo)

Me.Show()

CompletarGrilla()

End Sub

Private Sub CompletarGrilla()

dgGrilla.DataSource = FuncionesABM.Listar()

End Sub

End Class

--~--~---------~--~----~------------~-------~--~----~
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