public void ValidateExternal(NamedTypeMetaInfo type, ITypeValidationProvider typeValidation, IDiagnosticReporter reporter)
        {
            var typeValidator = new FluentMemberValidator(TypeMetaSelection.Any(type), _conditionAnalyzer);

            typeValidation.ConfigureValidation(typeValidator);
            typeValidator.Validate(reporter);
        }
        public FluentTypeValidator(TypeMetaSelection selection, ConditionAnalyzer conditionAnalyzer)
        {
            var type = selection.Type;

            _anyMembers      = new FluentMemberValidator(TypeMetaSelection.Any(type), conditionAnalyzer);
            _layoutMembers   = new FluentMemberValidator(selection, conditionAnalyzer);
            _excludedMembers = new FluentMemberValidator(selection.ReverseSelection(), conditionAnalyzer);
        }
 public MemberRules(FluentMemberValidator parent, Func <MemberMetaInfo, bool> predicate)
 {
     _parent    = parent;
     _predicate = predicate;
 }
 public AttributeRules(FluentMemberValidator parent, Type attribute)
 {
     _parent        = parent;
     _attributeType = attribute;
 }