Thoughts that compile to MSIL by Olaf Conijn
Have a look at this interesting application for EntLib 1.0 at GotDotNet (http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=41a621e5-3628-4c71-8985-710c4475f347)Look here for a description of the Service Locator pattern.
Personally I dont like giving services a name that is used in the client code to retrieve an instance of that service. This introduces a dependency that is totally code unrelated. Why not use Type as identifier, either an interface-Type (preferred) or a implementation class-Type (avoid this). Of course the service name can be the full type name but that is not enforced in the framework.
The reason the block doesn't enforce the use of fully qualified type names is because it's a Service locator, not a Type locator. In many instances, the uses may be equivalent, but it may not be the case. Consider System.DateTime objects, which it would be prudent to externalize from your code. In one case, you may need the current time (DateTime.Now), but in another case, you may need the current date (DateTime.Today). If you were limited to referencing services by type name, you wouldn't be able to distinguish between these two, separate services, but with the current design of the block, you can.