Otra de las new features de .Net 2.0, que a medida que avanzo en el desarrollo de pequeñas aplicaciones piloto (que ya no son tan pequeñas), voy descubriendo y luego implementando.

 

En este caso, con unas pocas líneas de código, demostraré como extender las funcionalidades de la librería My de Visual Basic .Net. La misma presenta las funcionalidades más comunes con las que trabajamos en el día a día, de una manera simple y sencilla.

 

Supongamos la siguiente clase (el código y la funcionalidad se explican por si solas):

 

Public Class World

 

  Public Function HelloWorld() As String

    Return "Hello World"

  End Function

 

End Class

 

Esta clase forma parte de un proyecto más amplio Labs, en el que tengo una serie de funcionalidades que utilizo en todos los proyectos. Para poder acceder rápidamente a estas funcionalidades, me gustaría poder agregar esta librería Labs al Namespace My. Para esto puedo implementar el siguiente código:

 

‘ This property is included in the My namespace, so it will show up in IntelliSense after referencing My.

Namespace My

  ‘ The HideModuleNameAttribute hides the module name MyLabs.Labs so the syntax becomes My.Labs.  

  <Global.Microsoft.VisualBasic.HideModuleName()> _

  Module Labs

 

    Private _World As New ThreadSafeObjectProvider(Of Global.MyLabs.World)

 

    Public ReadOnly Property World() As Global.MyLabs.World

      Get

        Return _World.GetInstance()

      End Get

    End Property

 

  End Module

 

End Namespace

 

Este módulo mantiene una instancia del componente World y la publica “sobrescribiendo” el namespace My. Para lograrlo se utiliza el atributo HideModuleName, que creo q explica su funcionamiento por si solo.

 

Como resultado final, dentro de mi VS2005, al momento de escribir código, puedo acceder a mis funciones de la siguiente manera:

 

 

Espero que les sea útil. (interesante es :P)

 

Saludos

 

PD: Un par de links relacionados

 

3 responses to “Visual Studio 2005 – Extend My Namespace”

  1. Muy bueno !!!. Todavía sigo encantado con la funcionalidad que se puede lograr con attributos en .Net 😀

    Like

  2. Y existe algo parecido para C# ? Pues si que está interesante así.

    Like

  3. http://www.graphichits.comYOU CAN FIND THE PICTURE OF EVERYTHING HEREANDFREE WALLPAPERS

    Like

Leave a comment

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading