public static IAssemblyGraphBuilder GetOrCreate(string projectPath, IReadOnlyCollection <CustomScriptAssembly> assemblies, IReadOnlyCollection <CustomScriptAssemblyReference> customScriptAssemblyReferences) { var assemblyGraphBuilderKey = new AssemblyGraphBuilderKey { projectPath = projectPath, assemblies = assemblies, customScriptAssemblyReferences = customScriptAssemblyReferences, }; if (!m_AlreadyInitializedAssemblyGraphBuilder.TryGetValue(assemblyGraphBuilderKey, out var assemblyGraphBuilder)) { assemblyGraphBuilder = new AssemblyGraphBuilder(projectPath); assemblyGraphBuilder.Initialize(assemblies, customScriptAssemblyReferences); m_AlreadyInitializedAssemblyGraphBuilder[assemblyGraphBuilderKey] = assemblyGraphBuilder; } return(assemblyGraphBuilder); }
public bool Equals(AssemblyGraphBuilderKey other) { return(string.Equals(projectPath, other.projectPath, StringComparison.Ordinal) && assemblies.SequenceEqual(other.assemblies) && customScriptAssemblyReferences.SequenceEqual(other.customScriptAssemblyReferences)); }