public void ReleaseReferenceAssemblyContext(ReferenceAssemblyContext referenceAssemblyContext) { int num; if (referenceAssemblyContext != null && this.referenceAssemblyContextTable.TryGetValue(referenceAssemblyContext, out num)) { this.referenceAssemblyContextTable[referenceAssemblyContext] = num - 1; if (this.referenceAssemblyContextTable[referenceAssemblyContext] == 0 && referenceAssemblyContext.ReferenceAssemblyMode != ReferenceAssemblyMode.TargetFramework) { referenceAssemblyContext.Dispose(); this.referenceAssemblyContextTable.Remove(referenceAssemblyContext); } } }
public ReferenceAssemblyContext CreateReferenceAssemblyContext(IProject project) { ReferenceAssemblyContext referenceAssemblyContext; ReferenceAssemblyContext referenceAssemblyContext1; ProjectType projectType = project.ProjectType as ProjectType; if (projectType != null) { ReferenceAssemblyMode referenceAssemblyMode = projectType.GetReferenceAssemblyMode(project); if (referenceAssemblyMode != ReferenceAssemblyMode.None) { if (referenceAssemblyMode == ReferenceAssemblyMode.TargetFramework) { using (IEnumerator <ReferenceAssemblyContext> enumerator = this.referenceAssemblyContextTable.Keys.GetEnumerator()) { while (enumerator.MoveNext()) { ReferenceAssemblyContext current = enumerator.Current; if (current.ReferenceAssemblyMode != ReferenceAssemblyMode.TargetFramework || !current.TargetFramework.Equals(project.TargetFramework)) { continue; } this.referenceAssemblyContextTable[current] = this.referenceAssemblyContextTable[current] + 1; referenceAssemblyContext1 = current; return(referenceAssemblyContext1); } referenceAssemblyContext = new ReferenceAssemblyContext(referenceAssemblyMode, project.TargetFramework); this.referenceAssemblyContextTable.Add(referenceAssemblyContext, 1); return(referenceAssemblyContext); } return(referenceAssemblyContext1); } referenceAssemblyContext = new ReferenceAssemblyContext(referenceAssemblyMode, project.TargetFramework); this.referenceAssemblyContextTable.Add(referenceAssemblyContext, 1); return(referenceAssemblyContext); } } return(null); }
public ReferenceAssemblyUniverse(ReferenceAssemblyContext context) { this.context = context; }