Friend Assemblies, accediendo a un assembly desde otro…

Imagina que estás desarrollando un proyecto basado en pruebas y necesitas acceder a elementos internos de otro ensamblado, ¿cómo lo haces?

Una posibilidad es declarar todo aquello a lo que necesitas acceder de caracter público y así ya tienes acceso desde tu ensamblado de pruebas; sin embargo, hay un problema ya que no solo puedes acceder tú sino que estás dejándolo visible a cualquier otro ensamblado.

La otra es emplear el atributo InternalsVisibleTo definido en el namespace System.Runtime.CompilerServices. Cuando compilamos uno de nuestros ensamblados es posiblie definir qué otros ensamblados son considerados amigos dándole permiso para acceder a todos los miembros internos que se encuentren definidos de la misma forma que si se encontrara dentro del mismo namespace.

Su funcionamiento es sencillo, únicamente tendremos que añadir en la cabecera de nuestra clase el siguiente código:

[assembly: InternalsVisibleTo("Otro.Ensamblado.Tests")]

y podremos trabajar desde el ensamblado “Otro.Ensamblado.Tests” con los métodos y propiedades declaradas como internas sin tener que cambiarles su visibilidad a públicas.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.