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 **
Hello Michael,
Looks like an oversight on my part. You're right that IsLocatorProviderSet is probably more consistent with other parts of the API. In my defense, however, the assembly is called "Microsoft.Practices.ServiceLocation".
Cheers,
-Francis