When no IoC container is registered using ServiceLocator.SetLocatorProvider(ServiceLocatorProvider) the Current property will throw a NullReferenceException. Throwing a NullReferenceException is always a bad thing for a reusable framework such as CSL, or to quote the Framework Design Guidelines: "DO NOT allow publicly callable APIs to explicitly or implicitly throw NullReferenceException".
The Current property should check if the currentProvider delegate is null and if so, throw an InvalidOperationException with an expressive exception message, explaining what is wrong and what should be done to resolve this issue.
Comments: ** Comment from web user: fcheung **
The Current property should check if the currentProvider delegate is null and if so, throw an InvalidOperationException with an expressive exception message, explaining what is wrong and what should be done to resolve this issue.
Comments: ** Comment from web user: fcheung **
We addressed this issue by adding an IsLocationProviderSet property to the static ServiceLocator class. If the LocationProvider is not set using the SetLocationProvider method, IsLocationProviderSet will return false and Current will throw an InvalidOperationException.