public IFactoryLoader GetLoaderForFactory(Type creationType)
{
IFactoryLoader loader = null;
if (!customFactoryLoaderCache.TryGetValue(creationType, out loader))
{
lock(syncLock)
{
if (!customFactoryLoaderCache.TryGetValue(creationType, out loader))
{
var definition = new CustomFactoryDefinition(creationType, this);
var builder = new CustomFactoryGenerator(definition);
loader = builder.CreateLoader();
customFactoryLoaderCache.Add(creationType, loader);
}
}
}
return loader;
}