It could seem a stupid question because in my code everything is working, but I’ve registered a singleton this way with my Unity container _ambientContainer:
_ambientContainer.RegisterType<Application.StateContext>(new ContainerControlledLifetimeManager());
In order to avoid to use my local field, I use:
get {
return ServiceLocator.Current.GetInstance<Application.StateContext>();
}
inside my get property to get an instance of my object.
This way I get always the same instance (Application.StateContext is still a singleton) or does GetInstance create a new one?
Is it better to use the local _ambientContainer field instead?
get {
return _ambientContainer.Resolve<Application.StateContext>();
}
Thank you.
I’m assuming that the
ServiceLocatortype is from the CommonServiceLocator project, and that you’re using the Unity adapter, in which caseGetInstanceinvokescontainer.Resolve, so both lines are equivalent.You can view the source here – http://commonservicelocator.codeplex.com/wikipage?title=Unity%20Adapter&referringTitle=Home