Ejemplo n.º 1
0
        private static IScorerFactory GetKnownScorers(IApprovalAnalyzer approvalAnalyzer, IWordCounter wc)
        {
            var scorers         = GetDerivedTypes <Scorer>(Assembly.GetAssembly(typeof(Scorer)));
            var scorerInstances = scorers
                                  .Select(s => CreateInstance(s, approvalAnalyzer, wc))
                                  .Cast <Scorer>()
                                  .ToDictionary(s => s.Attribute, StringComparer.OrdinalIgnoreCase);

            return(new ScorerFactory(scorerInstances));
        }
Ejemplo n.º 2
0
        private static object CreateInstance(Type s, IApprovalAnalyzer approvalAnalyzer, IWordCounter wc)
        {
            if (s == typeof(ApprovalScorer))
            {
                return(Activator.CreateInstance(typeof(ApprovalScorer), approvalAnalyzer));
            }

            if (s == typeof(CommentCountScorer))
            {
                return(Activator.CreateInstance(typeof(CommentCountScorer), wc));
            }

            if (s == typeof(WordCountScorer))
            {
                return(Activator.CreateInstance(typeof(WordCountScorer), wc));
            }

            return(Activator.CreateInstance(s));
        }
Ejemplo n.º 3
0
        }                            // For deserialization only

        public ApprovalScorer(IApprovalAnalyzer approvalAnalyzer)
        {
            _approvalAnalyzer = approvalAnalyzer ?? throw new ArgumentNullException(nameof(approvalAnalyzer));
        }