6 repositorios
Using runtime type analysis to match dependency requests with available providers in a container.
Distinct from Runtime Reflection: Specializes runtime reflection for the purpose of dependency injection resolution.
Explore 6 awesome GitHub repositories matching part of an awesome list · Reflection-Based Dependency Resolution. Refine with filters or upvote what's useful.
Fx is a dependency injection framework and application lifecycle manager for Go. It functions as a component model container that automates the instantiation and connection of components by analyzing constructor parameters and return values to resolve complex dependency graphs. The framework distinguishes itself through module-based component bundling, which encapsulates related constructors into reusable units to manage visibility and logic. It provides advanced resolution capabilities, including mapping concrete types to interfaces for decoupling, resolving dependency ambiguities via unique
Uses runtime type analysis to match requested dependencies with available providers.
Autofac es un framework de inyección de dependencias y contenedor de inversión de control para .NET. Funciona como un motor de registro de componentes que desacopla las implementaciones de clases de sus dependencias inyectando los servicios requeridos mediante constructores o propiedades. El proyecto incluye una librería de escaneo de ensamblados para descubrir y registrar automáticamente componentes dentro de binarios compilados basados en criterios de tipo específicos. Proporciona un gestor de ciclo de vida de servicios para controlar la duración de la memoria de los objetos utilizando singletons, instancia por dependencia o alcances de solicitud aislados. El framework cubre un amplio rango de capacidades, incluyendo inyección de dependencias recursiva, resolución de servicios condicional y la organización de registros en módulos reutilizables. También soporta la gestión de alcances de resolución aislados para asegurar que las instancias sean eliminadas correctamente. El sistema se integra con varios entornos, proporcionando mecanismos para el bootstrapping de alojamiento de aplicaciones, inyección de dependencias en funciones serverless y mocking para pruebas automatizadas.
Uses runtime type inspection to automatically identify and inject required services into constructor parameters.
dig es un framework de inyección de dependencias basado en reflexión y un resolvedor de grafos de objetos para Go. Funciona como un contenedor que satisface automáticamente las dependencias de tipo y gestiona la instanciación de redes complejas de objetos durante el inicio de la aplicación. El proyecto utiliza un grafo acíclico dirigido para determinar la secuencia necesaria para la instanciación de objetos y emplea el mapeo de proveedores basado en interfaces para desacoplar las implementaciones concretas de sus interfaces satisfechas. Resuelve la jerarquía de objetos mediante la resolución de tipos basada en reflexión y el cableado de componentes de una sola pasada para garantizar que se cumplan todos los requisitos antes de la ejecución.
Uses runtime type analysis and Go reflection to match dependency requests with available providers.
MvvmCross es un framework .NET MVVM diseñado para construir aplicaciones multiplataforma separando la lógica de negocio de las interfaces de usuario nativas. Funciona como un motor de navegación y una librería de enlace de datos de UI, permitiendo la encapsulación de la lógica dentro de view models que se reutilizan en diferentes sistemas operativos. El framework proporciona una capa de abstracción de hardware nativa y un contenedor de inyección de dependencias para desacoplar componentes y proporcionar una interfaz consistente para acceder a las características del dispositivo. Coordina transiciones seguras de tipo entre pantallas nativas y gestiona la sincronización de datos entre clases de lógica compartida y componentes de UI nativos a través de notificaciones de cambio de propiedad. El proyecto cubre una amplia gama de capacidades, incluyendo la gestión del ciclo de vida de la aplicación, deeplinking de URI y registro de servicios de inversión de control. También incluye utilidades para la internacionalización, mensajería pub-sub a través de un agregador de eventos de referencia débil e integración de hardware para sensores, geolocalización y autenticación biométrica.
Implements dependency resolution by using runtime type analysis to match requests with providers in the IoC container.
Inject is a dependency injection framework for Go that automates the assembly of complex object graphs. By leveraging runtime reflection, the library dynamically inspects object structures to resolve and populate required dependencies, decoupling component initialization from business logic. The framework manages object lifecycles through both singleton and factory-based provisioning. It maintains a central registry to share singletons across an application for consistent state, while also supporting the creation of unique, private instances to isolate state between different components. To
Uses runtime reflection to dynamically inspect object structures and automatically populate dependencies.
Inject es una librería de inyección de dependencias para Go que gestiona los ciclos de vida de los objetos y conecta los componentes de la aplicación automatizando la provisión de dependencias. Funciona como un contenedor basado en reflexión que mapea valores específicos a sus tipos correspondientes, permitiendo la recuperación e inyección automática de objetos en la lógica de la aplicación. La librería se distingue por su capacidad para realizar la invocación automática de funciones, donde inspecciona las firmas de funciones en tiempo de ejecución para resolver y proporcionar los argumentos requeridos desde un registro central. También admite la inyección de campos de estructura, que completa las propiedades de los objetos escaneando etiquetas de metadatos específicas durante la inicialización. El framework facilita el diseño modular a través de la gestión jerárquica de contenedores, permitiendo que los contenedores secundarios deleguen las búsquedas de dependencias a los alcances principales cuando falta un tipo solicitado localmente. Este sistema admite la resolución basada en interfaces, asegurando que las implementaciones concretas se emparejen correctamente con los tipos solicitados según la evaluación en tiempo de ejecución.
Matches concrete implementations to requested interface types using runtime reflection.