2012-06-17 16 views
5

Estoy empezando con Unity. Todavía me pregunto cuáles son sus ventajas.¿Cuál es la ventaja de UnityContainer.Resolve sobre Activator.CreateInstance?

UnityContainer().Resolve<T>() que puede devolver una instancia concreta del tipo que está registrado para el tipo genérico T.

Creo que también puedo usar Activator.CreateInstance<T>().

Activator es una clase incorporada en .NET Framework, por lo que me pregunto cuál es la característica distintiva de Unity?

+4

Lea cualquier tutorial sobre inyección de dependencia y obtendrá su respuesta ... –

+4

Además, Activator.CreateInstance es * lento * y no puede asignar interfaces a tipos concretos. Es inútil para la inyección de dependencia –

Respuesta

4

MSDN establece estos como las ventajas de la Unidad envase:

    creación
  1. objeto simplificado, especialmente para estructuras de objetos jerárquicos y dependencias
  2. Abstracción de los requisitos; esto permite a los desarrolladores especificar dependencias en el tiempo de ejecución o en la configuración y simplificar la administración de problemas transversales
  3. Mayor flexibilidad al diferir la configuración de los componentes al contenedor
  4. Capacidad de ubicación de servicio; esto permite a los clientes almacenar o almacenar en caché el contenedor
  5. Instancia y tipo de intercepción.

Aquí está la link.

Cuestiones relacionadas