ArchiMetrics.CodeReview.Rules.AllRules.GetSyntaxRules C# (CSharp) Метод

GetSyntaxRules() публичный статический Метод

public static GetSyntaxRules ( ISpellChecker spellChecker ) : IEnumerable
spellChecker ISpellChecker
Результат IEnumerable
		public static IEnumerable<ISyntaxEvaluation> GetSyntaxRules(ISpellChecker spellChecker)
		{
			var types = (from type in typeof(AllRules).Assembly.GetTypes()
						 where typeof(ISyntaxEvaluation).IsAssignableFrom(type)
						 where !type.IsInterface && !type.IsAbstract
						 select type).AsArray();
			var simple =
				types.Where(x => x.GetConstructors().Any(c => c.GetParameters().Length == 0))
					.Select(Activator.CreateInstance)
					.Cast<ISyntaxEvaluation>();
			var spelling =
				types.Where(
					x =>
					x.GetConstructors()
						.Any(
							c => c.GetParameters().Length == 1 && typeof(ISpellChecker).IsAssignableFrom(c.GetParameters()[0].ParameterType)))
					.Select(x => Activator.CreateInstance(x, spellChecker))
					.Cast<ISyntaxEvaluation>();

			return simple.Concat(spelling).OrderBy(x => x.ID).AsArray();
		}