Acceso a espacios de nombre de otros ensamblados

Acceso a espacios de nombre de otros ensamblados

Al igual que accedemos a las clases a través de los espacios de nombre del ensamblado en el proyecto actual, podemos acceder a las clases residentes en otros ensamblados, y en sus correspondientes espacios de nombre. Los pasos necesarios se describen a continuación.

El ejemplo de este apartado, NamespOtrosEnsam está disponible haciendo clic aquí . En primer lugar crearemos un proyecto de tipo consola al que daremos el nombre AppVariosProy; en

él, ya disponemos del correspondiente Main( ), que codificaremos más tarde.

A continuación debemos crear otro proyecto, pero agregándolo a la solución existente, es decir, seleccionaremos el menú del IDE Archivo + Agregar proyecto + Nuevo proyecto. Este nuevo proyecto debe ser del tipo Biblioteca de clases, cuyo resultado es un fichero con extensión .DLL; le asignaremos el nombre Adicional. Ver Figura 198.

Figura 198. Agregar a la solución un proyecto de biblioteca de clases.

Al agregar un proyecto de este tipo a la solución, la ventana Explorador de soluciones muestra ambos proyectos, remarcando en negrita el nombre del proyecto AppVariosProy como el proyecto de inicio, puesto que el nuevo que acabamos de agregar, sólo contendrá clases que serán utilizadas por otros ensamblados.

Programación con Visual Basic .NET © Grupo EIDOS

Un proyecto de biblioteca de clases añade por defecto una clase con el nombre Class1, cuyo código eliminaremos y lo sustituiremos por el mostrado en el Código fuente 235, que como podrá comprobar el lector, se trata de dos clases, con la particularidad de que una de ellas está a su vez, contenida en un espacio de nombres.

Public Class Factura Public piID As Integer Public piImporte As Integer Public Sub Datos()

Console.WriteLine("La factura {0}, tiene un importe de {1}", _ Me.piID, Me.piImporte) End Sub End Class Namespace Correo

Public Class Mensaje Public psTexto As String Public pdtFecha As Date Public Sub Visualizar()

Console.WriteLine("Atención, mensaje: {0}, de fecha: {1}", _

Me.psTexto, Me.pdtFecha) End Sub End Class End Namespace

Código fuente 235

Sin embargo, todavía no podemos hacer uso de estas clases desde nuestra aplicación de consola, para lograr que las clases del proyecto Adicional sean visibles desde el proyecto AppVariosProy, debemos hacer clic sobre este último en el Explorador de soluciones, y a continuación seleccionar el menú Proyecto + Agregar referencia; en el cuadro de diálogo que aparece seguidamente, haremos clic en la pestaña Proyectos, seleccionando el único proyecto que muestra la lista, y que se trata de la biblioteca

de clases que hemos añadido a la solución. Ver Figura 199.

Figura 199. Agregar referencia de una biblioteca de clases a un proyecto.

© Grupo EIDOS 18. Métodos y espacios de nombre

Completadas todas estas operaciones, pasaremos al fichero de código del proyecto de consola, y dado que vamos a utilizar las clases contenidas en un ensamblado distinto del que estamos posicionados, debemos importar los espacio de nombres del ensamblado; tanto su espacio raíz, como el que hemos creado manualmente. De forma adicional, hemos añadido una clase a continuación de Main( ) para demostrar como para instanciar dicha clase, al estar en el espacio de nombres raíz del proyecto de consola, no es necesario realizar ninguna importación, veamos el Código fuente 236.

' importamos el namespace Adicional, ' este namespace es el raíz del proyecto ' de biblioteca de clases y ' nos servirá para acceder a la clase ' Factura del proyecto Adicional Imports Adicional

' por otro lado importamos el namespace ' Adicional.Correo que nos permitirá ' acceder a la clase Mensaje, que también ' está en la biblioteca de clases Imports Adicional.Correo

Module Module1 Sub Main() Dim loEmp As New Empleado() loEmp.psID = 254 loEmp.MostrarDatos()

Dim loFac As New Factura() loFac.piID = 785 loFac.piImporte = 1200 loFac.Datos()

Dim loMsg As New Mensaje() loMsg.psTexto = "Hola mundo" loMsg.pdtFecha = Today loMsg.Visualizar()

Console.ReadLine() End Sub End Module

Public Class Empleado Public psID As Integer

Public Sub MostrarDatos() Console.WriteLine("Identificador del empleado: {0}", Me.psID) Console.ReadLine()

End Sub End Class

Código fuente 236

Cuando ejecutemos el programa depurando línea a línea, comprobaremos como el flujo de la aplicación pasa al código de la biblioteca de clases al instanciar sus objetos.

Constructores y herencia