コード例 #1
0
        private IEnumerable<Violation> VerifyNotSettingProperty(VerificationContext context, TypeNode typeNode)
        {
            var violatingMethods = from method in typeNode.InboundFrom<MethodNode, ContainedInLink>()
                                   where method.OutboundLinks.OfType<SetPropertyLink>().Any()
                                   select method;

            foreach (var method in violatingMethods)
            {
                yield return new ImmutableTypeSetsPropertyOutsideOfConstructorViolation(typeNode, method);
            }
        }
コード例 #2
0
        private IEnumerable<Violation> VerifyNoWritableFields(VerificationContext context, TypeNode typeNode)
        {
            var violatingFields = from field in typeNode.InboundFrom<FieldNode, ContainedInLink>()
                                  where !field.Field.IsInitOnly
                                  select field;

            foreach (var field in violatingFields)
            {
               yield return new ImmutableTypeHasWritableFieldViolation(typeNode, field);
            }
        }
コード例 #3
0
        private IEnumerable<Violation> VerifyNoNotPrivatePropertySetters(VerificationContext context, TypeNode typeNode)
        {
            var violatingProperties = from property in typeNode.InboundFrom<PropertyNode, ContainedInLink>()
                                      where property.Property.CanWrite && !property.Property.SetMethod.IsPrivate
                                      select property;

            foreach (var property in violatingProperties)
            {
                yield return new ImmutableTypeHasNonPrivateSetterViolation(typeNode, property);
            }
        }