Both of these registration methods are used in the application, the following is their own understanding
RegisterInstance registering a single case mode
1 _container. Registerinstance<inavigationservice>(navigationservice); 2 _container. Registerinstance<isessionstateservice>(sessionstateservice); 3 _container. Registerinstance<ieventaggregator>(eventaggregator); 4 _container. Registerinstance<iresourceloader> ( new Resourceloaderadapter (new Resourceloader ()));
Registered objects that have been instantiated, each call to resolve to remove the registered object is a unique singleton
Registertype Registration Type
1 _container. Registertype<iproductcatalogrepository, productcatalogrepository>(); 2 _container. Registertype<ishoppingcartrepository, shoppingcartrepository>(); 3 _container. Registertype<icheckoutdatarepository, checkoutdatarepository>(); 4 _container. Registertype<iorderrepository, orderrepository> ();
Only when the resolve is called, the registered object is instantiated, multiple calls are made, several objects are instantiated repeatedly
Can be added type ContainerControlledLifetimeManager also registered as a singleton
1 _container. Registertype<iproductcatalogservice, productcatalogserviceproxy> (new ContainerControlledLifetimeManager ()); 2 _container. Registertype<iorderservice, orderserviceproxy> (new ContainerControlledLifetimeManager ()); 3 _container. Registertype<ishoppingcartservice, shoppingcartserviceproxy> (new ContainerControlledLifetimeManager ());
1
_container. Registertype<iproductcatalogrepository, productcatalogrepository> (new ContainerControlledLifetimeManager ());
2
_container. Registerinstance<iproductcatalogrepository> (new
1 and 2, the individual understanding of the time is different, 1 in the first call through resolve, 2 at the time of registration to instantiate.
The difference between Registertype and registerinstance in UnityContainer