public override object ProvideValue(IServiceProvider serviceProvider)
{
object value = null;
var type = (Type)typeExtension.ProvideValue(serviceProvider);
if (!Instances.TryGetValue(type, out value))
{
Instances[type] = value = Activator.CreateInstance(type);
}
return(value);
}