Instale un servidor de Componentes en el cual Registré con el "regsvcs" mi DLL (regladenegocio.dll) a la cual acceden mis clientes mediante Enterprise Services lo que seria COM+ ..... desde mi aplicacion escritorio para poder utilizar las clases de mi "regladenegocio.dll" utilizo
Código:
de esta forma puedo utilizar los metodos de la clase clsEmpresa. dim obj as object obj = createobject("regladenegocio.clsEmpresa") obj.listar() ' FORMA CORRECTA
la arquitectura del proyecto implica que algunos metodos del clsEmpresa devuelvan una coleccion de otra clase por ejemplo "clsProducto" como se ve en el codigo siguiente
Código:
Como vera el metodo listar de clsEmpresa me devuelve una coleccion de clsProducto definido en Dim a_Producto As New System.Collections.Generic.List(Of clsProducto) dentro del metodo listar, desde mi aplicacion cliente debo de recibir esos datos creando una coleccion del mismo tipo y asignarle el metodo listar algo parecido a esto*************************************************** ********************** REGLADENEGOCIO.DLL*********** *************************************************** Public Class clsProducto Inherits ServicedComponent ------------------------------propiedades y metodos End class *************************************************** ambas clases estan dentro de un mismo archivo de clase clsEmpresa ************************************************* Public Class clsEmpresa Inherits ServicedComponent Public Function Listar() As System.Collections.Generic.List(Of clsProducto) Dim a_Producto As New System.Collections.Generic.List(Of clsProducto) ------- lleno con datos el a_producto ------------------------------ codigo return a_Producto End function End Class *******************************************************
Código:
OBJ1: LINEA1: dim obj as object LINEA2: obj = createobject("regladenegocio.clsEmpresa") LINEA3: Dim a_Empresa As New List(Of clsProducto) LINEA4: a_Empresa.AddRange(obj.listar())
En la linea 2 instancio mi clsEmpresa de la dll que esta instalada en mi servidor de componentes,, esto si funciona.
OBJ2: En la linea 3 intento definir una coleccion de la clase clsProducto para asi poder recibir loq ue me devuelva obj.listar de la linea 4, pero da la casualidad que con esa linea de codigo (LINEA 3) me sale un error ya que clsProducto esta definido en regladenegocio.dll que dicho sea de paso esta instalada en mi servidor y accedo a ella solo por COM+.
MI PREGUNTA....
como podria corregir la linea 3 para poder crear una coleccion del tipo clsProducto usando algo asi como CREATEOBJECT de la linea2.....
MI PREGUNTA 2....
podria evitar usar el CREATEOBJECT ¿? osea simplemente declarar DIM OBJ AS NEW regladenegocio.clsEmpresa porque en todos los ejemplos de COM+ que he visto lo hacen de esa forma pero a mi no me funciona de esa forma. y tengo q hacerlo usando el createobject sino no funciona.
Recuerden que la dll REGLADENEGOCIO no esta en la misma carpeta de la APLICACION ni en la misma pc. ya que esta esta instalada en un servidor de componentes remoto y los clientes solo se instala el EXE de mi aplicacion.
Espero haberme dado a entender... muchas gracias.
cualquier cosa pregunten.