La prima risposta è una sorta di cosa stavo pensando. Grazie.
Prima di Unità, abbiamo costruito il nostro proprio contenitore CIO, e noi abbiamo una sintassi qualcosa di simile ...
<constructor>
<param name="factory" value="[{factory}]"/>
</constructor>
Il [{} fabbrica] fa sì che passasse per sé come parametro.
Come impostazione come statico: non mi piace utilizzare tale approccio perché ogni oggetto diventa dipendente dalla singola proprietà (ovviamente). È meno riutilizzabile e meno verificabile, specialmente se la statica è di sola lettura (quale dovrebbe essere). Una volta che la static è impostata, non puoi (o non dovresti essere in grado di) pasticciarla, il che limita gli scenari di test che puoi creare.
Se non altro, quindi gli oggetti dovrebbero almeno essere in grado di accettare un contenitore come parametro. Se non è lì, allora potrebbe ricadere in una statica.
Abbiamo iniziato a utilizzare la singola istanza e abbiamo finito per cambiare tutto. Secondo me, gli oggetti dovrebbero essere più flessibili di così. Se il consumatore degli oggetti vuole avere una singola istanza che passa ai suoi oggetti, questo dipende dal consumatore. Ma l'oggetto stesso non dovrebbe richiederlo. Con la sintassi mostrata sopra, è davvero facile passare il contenitore attraverso il grafico.
Grazie per le informazioni.
Jay
Scusate ... nuovo ragazzo. Vedo che questo dovrebbe essere stato un commento, non una risposta.
fonte
2009-05-06 13:12:06
Non è necessario registrare il contenitore con se stesso. Per impostazione predefinita, risolverà la dipendenza di IUnityContainer da solo. –
Non ho avuto il tempo di eseguire il picco la scorsa notte grazie per averlo sottolineato. Ho aggiunto il test che ho usato. – bendewey