2012-06-17 7 views
5

Ho appena iniziato con Unity. Mi sto ancora chiedendo quali siano i suoi vantaggi.Qual è il vantaggio di UnityContainer.Resolve su Activator.CreateInstance?

UnityContainer().Resolve<T>() che può restituire un'istanza concreta del tipo registrato per il tipo generico T.

Penso di poter utilizzare anche Activator.CreateInstance<T>().

Activator è una classe integrata in .NET Framework, quindi mi chiedo quale sia la caratteristica distintiva di Unity?

+4

Leggi qualsiasi esercitazione sull'iniezione delle dipendenze e avrai la risposta ... –

+4

Inoltre, Activator.CreateInstance è * lento * e non può mappare le interfacce con tipi concreti. È inutile per l'iniezione di dipendenza –

risposta

4

MSDN indica questi come i vantaggi di unità contenitore:

    creazione
  1. oggetto semplificato, particolarmente per strutture degli oggetti gerarchici e dipendenze
  2. estrazione di requisiti; questo consente agli sviluppatori di specificare dipendenze in fase di esecuzione o configurazione e di semplificare la gestione dei problemi di interconnessione
  3. Maggiore flessibilità differendo la configurazione del componente nel contenitore
  4. Servizio posizione; ciò consente ai clienti di memorizzare o memorizzare nella cache il contenitore
  5. Intercettazione di istanze e tipi.

Ecco il link.