Exemple #1
0
        private Metrics UpdateStabilityDependents(string targetAssemblyName, Metrics metrics)
        {
            var dependentCount = CrossAssemblyReferences
                                 .Where(xref => xref.TargetAssembly == targetAssemblyName)
                                 .DistinctBy(xref => (xref.OriginType, xref.OriginAssembly))
                                 .Count();

            return(new Metrics(
                       new StabilityMetric(metrics.Stability.Dependencies, dependentCount),
                       metrics.Abstractness));
        }
Exemple #2
0
        private StabilityMetric PrepareStabilityMetric(Compilation compilation)
        {
            var visitor = new StabilityVisitor(compilation.Assembly, SolutionAssemblyNames);

            visitor.Visit(compilation.Assembly);
            var xAssemblyRefs = visitor.ExternalTypeReferencingTypes
                                .SelectMany(pair => pair.Value.Select(origin => CreateCrossAssemblyReference(origin, pair.Key)));

            foreach (var xRef in xAssemblyRefs)
            {
                CrossAssemblyReferences.Add(xRef);
            }
            return(new StabilityMetric(
                       visitor.ExternalTypesUsed.Count,
                       default));
        }