public void Merge(CSharpReference anotherRef) { foreach (var loc in anotherRef.DeclaringLocations) { DeclaringLocations.Add(loc); } foreach (var refers in anotherRef.Referencers) { Referencers.Add(refers); } }
public Dictionary <string, CSharpReference> GetReferences() { Dictionary <string, CSharpReference> referenceMap = new Dictionary <string, CSharpReference>(); foreach (var cls in Children.Where(x => x.Value is CSharpClass)) { var clsObj = cls.Value as CSharpClass; foreach (var refObj in clsObj.References) { CSharpReference refCls; if (!referenceMap.TryGetValue(refObj.Key, out refCls)) { refCls = new CSharpReference { FullyQualifiedName = refObj.Key, DeclaringLocations = refObj.Value }; refCls.Referencers = new HashSet <string>(); referenceMap.Add(refObj.Key, refCls); } refCls.Referencers.Add(cls.Key); } } return(referenceMap); }