Ejemplo n.º 1
0
        public static ImplicitNullabilityConfiguration?ParseAttributes(IAttributesSet attributes)
        {
            var assemblyMetadataValues = AssemblyMetadataAttributeValues.Parse(attributes);

            if (assemblyMetadataValues.AppliesTo == null)
            {
                return(null);
            }

            return(ParseFromAssemblyAttributeOptionsText(assemblyMetadataValues));
        }
Ejemplo n.º 2
0
        private static ImplicitNullabilityConfiguration ParseFromAssemblyAttributeOptionsText(AssemblyMetadataAttributeValues attributeValues)
        {
            var appliesTo       = ParseFlags <ImplicitNullabilityAppliesTo>(attributeValues.AppliesTo);
            var fieldOptions    = ParseFlags <ImplicitNullabilityFieldOptions>(attributeValues.Fields);
            var propertyOptions = ParseFlags <ImplicitNullabilityPropertyOptions>(attributeValues.Properties);

            // Fall back to `Include` if null/invalid (versus default = `Exclude` in the UI) for backwards compatibility with IN <= 3.6.0:
            var generatedCode = ParseEnum(attributeValues.GeneratedCode, defaultValue: GeneratedCodeOptions.Include);

            return(new ImplicitNullabilityConfiguration(appliesTo, fieldOptions, propertyOptions, generatedCode));
        }