InternalsVisibleTo

Hoy he descubierto el atributo InternalsVisibleTo, este atributo esta definido en el namespace System.Runtime.CompilerServices. Nos permite utilizar metodos y tipos internos de un assembly.

si yo tengo un assembly que implementa la siguiente clase

internal class MiInternalClass
{
public void Metodo1() {...}
internal void InternalMetodo() {...}
}

Si yo en mi proyecto, al cual le he añadido la referencia del assembly donde se encuentra esa clase, le añado al fichero AssemblyInfo.cs la linea

[assembly: InternalsVisibleTo(«NombreAssembly»)]

En mi proyecto podre utilizar MiInternalClass y llamar a los emtodos publicos o internos.

Hay que reseñar que utilizando esta tecnica violamos la encapsulación de los internals que declaramos en nuestros assemblies, pero puede haber casos que nos venga bien esta tecnica como por ejemplo si tenemos un assemblie ya creado y lo queremos dividir en varios assemblies.

Un comentario sobre “InternalsVisibleTo”

  1. Yo personalmente lo utilizo para el tema del testing. Desde el assembly de los test, en ocasiones, viene bien poder acceder a propiedades y métodos internos de las dll que se están probando

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *