예제 #1
0
        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);
        }