Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 21356|Respuesta: 1

[Fuente] Autofac eficiente en IoC

[Copiar enlace]
Publicado en 13/9/2016 13:14:12 | | |
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.





Anterior:ActionResult del MVC
Próximo:ConcurrentDictionary vs. Dictionary+Locking - Dennis Gao
 Propietario| Publicado en 13/9/2016 13:15:50 |
Método de instalación de nugets:

Instalar Autofac

Install-Package Autofac
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com