IKVM.Internal.AssemblyClassLoader.GetLoaderForExportedAssembly C# (CSharp) Method

GetLoaderForExportedAssembly() private method

private GetLoaderForExportedAssembly ( Assembly assembly ) : System.Reflection.AssemblyLoader
assembly Assembly
return System.Reflection.AssemblyLoader
        private AssemblyLoader GetLoaderForExportedAssembly(Assembly assembly)
        {
            LazyInitExports();
            AssemblyLoader loader;
            lock (exportedLoaders)
            {
                exportedLoaders.TryGetValue(assembly, out loader);
            }
            if (loader == null)
            {
                loader = new AssemblyLoader(assembly);
                lock (exportedLoaders)
                {
                    AssemblyLoader existing;
                    if (exportedLoaders.TryGetValue(assembly, out existing))
                    {
                        // another thread beat us to it
                        loader = existing;
                    }
                    else
                    {
                        exportedLoaders.Add(assembly, loader);
                    }
                }
            }
            return loader;
        }