Reflection es una característica .NET que nos permite observar propiedades, atributos, métodos, etc de objetos o clases en momento de ejecución.
Hoy veremos, como con Reflection creamos objetos dinámicamente utilizando las clases que estén alojadas en la carpeta App_Code de nuestra aplicación Web.
//Load App_Code Class by Reflection
if (System.Web.Compilation.BuildManager.CodeAssemblies != null) {
foreach (
System.Reflection.Assembly assembly
in
System.Web.Compilation.BuildManager.CodeAssemblies) {
var types = assembly.GetExportedTypes();
if (types == null || types.Length == 0)
continue;
foreach (Type type in types) {
Activator.CreateInstance(type);
}
}
}
Con este pequeño porción de código que incluí en AFDS puedo cargar los plugins (Clases) que están en la carpeta App_Code.
Más información sobre Reflection .NET