IoC ~ Autofac eficiente
No hay duda de que el contenedor favorito de Microsoft para IoC no es spring.net, Unity, sino Autofac, por su eficiencia, por su simplicidad, por lo que también se utiliza en proyectos de huertos liderados por Microsoft
ilustra el uso de un Autofac.
Vamos a llamarlo ahora:
En la próxima clase, hablaré sobre el uso de Autofac en proyectos específicos para proyectos de huertos.
Ahora mira su ciclo de vida
1、DependenciaDeInstanciaPerDependencia
Crea una nueva instancia única para cada dependencia o llamada. Esta también es la forma predeterminada de crear instancias.
La documentación oficial explica: Configura el componente para que cada componente dependiente o llamada a Resolve() reciba una instancia nueva y única (por defecto).
2、InstancePerLifetimeScope
En un dominio de ciclo de vida, cada dependencia o llamada crea una única instancia compartida, y para cada dominio de ciclo de vida diferente, la instancia es única y no compartida.
La documentación oficial explica: Configura el componente para que cada componente dependiente o llamada a Resolve() dentro de un único ILifetimeScope reciba la misma instancia compartida. Los componentes dependientes en diferentes ámbitos de vida tendrán diferentes instancias.
3、InstancePerMatchingLifetimeScope
En un dominio de ciclo de vida identificado, cada dependencia o llamada crea una única instancia compartida. Las instancias en el dominio padre pueden compartirse en el dominio de identidad hijo del dominio identificado del ciclo de vida. Si no se encuentra ningún dominio de ciclo de vida identificado en toda la jerarquía de herencia, se lanza una excepción: DependencyResolutionException.
La documentación oficial explica: Configura el componente para que cada componente dependiente o llamada a Resolve() dentro de un ILifetimeScope etiquetado con cualquiera de los valores proporcionados reciba la misma instancia compartida. Los componentes dependientes en los ámbitos de por vida que son hijos del ámbito etiquetado compartirán la instancia del padre. Si no se encuentra un alcance etiquetado adecuadamente en la jerarquía, se lanza una DependenciaResoluciónExcepción.
4、InstancePerOwned
En el ciclo de vida de una instancia creada por una instancia propiedad de un dominio de ciclo de vida, cada componente dependiente o llamada al método Resolve() crea una única instancia compartida, y el dominio hijo del ciclo de vida comparte las instancias en el dominio del ciclo de vida padre. Si no se encuentra un dominio adecuado del ciclo de vida con instancias hijas en la jerarquía de herencia, se lanza una excepción: DependencyResolutionException.
La documentación oficial explica:
Configura el componente para que cada componente dependiente o llamada a Resolve() dentro de un ILifetimeScope creado por una instancia propiedad reciba la misma instancia compartida. Los componentes dependientes en los ámbitos de vida que son hijos del ámbito de instancia propiedad compartirán la instancia del padre. Si no se encuentra un alcance de instancia propiedad apropiado en la jerarquía, se lanza una DependencyResolutionException.
5、Instancia Única
Cada vez que dependes de un componente o llamas al método Resolve(), obtienes la misma instancia compartida. De hecho, es un modelo único.
La documentación oficial explica: Configura el componente para que cada componente dependiente o llamada a Resolve() reciba la misma instancia compartida.
6、InstancePerHttpRequest
En el contexto de una solicitud Http, comparte una instancia de un componente. Disponible solo para desarrollo asp.net MVC.
|