private static void ReadMetadataValue()

in src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/ManifestReader.cs [72:176]


        private static void ReadMetadataValue(ManifestMetadata manifestMetadata, XElement element, HashSet<string> allElements)
        {
            if (element.Value == null)
            {
                return;
            }

            allElements.Add(element.Name.LocalName);

            string value = null;
            try
            {
                value = element.Value.SafeTrim();
                switch (element.Name.LocalName)
                {
                    case "id":
                        manifestMetadata.Id = value;
                        break;
                    case "version":
                        if (NuGetVersion.TryParse(value, out NuGetVersion version))
                        {
                            manifestMetadata.Version = version;
                        }
                        break;
                    case "authors":
                        manifestMetadata.Authors = value?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                        break;
                    case "owners":
                        manifestMetadata.Owners = value?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                        break;
                    case "licenseUrl":
                        manifestMetadata.SetLicenseUrl(value);
                        break;
                    case "projectUrl":
                        manifestMetadata.SetProjectUrl(value);
                        break;
                    case "iconUrl":
                        manifestMetadata.SetIconUrl(value);
                        break;
                    case "requireLicenseAcceptance":
                        manifestMetadata.RequireLicenseAcceptance = XmlConvert.ToBoolean(value);
                        break;
                    case "developmentDependency":
                        manifestMetadata.DevelopmentDependency = XmlConvert.ToBoolean(value);
                        break;
                    case "description":
                        manifestMetadata.Description = value;
                        break;
                    case "summary":
                        manifestMetadata.Summary = value;
                        break;
                    case "releaseNotes":
                        manifestMetadata.ReleaseNotes = value;
                        break;
                    case "copyright":
                        manifestMetadata.Copyright = value;
                        break;
                    case "language":
                        manifestMetadata.Language = value;
                        break;
                    case "title":
                        manifestMetadata.Title = value;
                        break;
                    case "tags":
                        manifestMetadata.Tags = value;
                        break;
                    case "readme":
                        manifestMetadata.Readme = value;
                        break;
                    case "serviceable":
                        manifestMetadata.Serviceable = XmlConvert.ToBoolean(value);
                        break;
                    case "dependencies":
                        manifestMetadata.DependencyGroups = ReadDependencyGroups(element);
                        break;
                    case "frameworkAssemblies":
                        manifestMetadata.FrameworkReferences = ReadFrameworkAssemblies(element);
                        break;
                    case "frameworkReferences":
                        manifestMetadata.FrameworkReferenceGroups = ReadFrameworkReferenceGroups(element);
                        break;
                    case "references":
                        manifestMetadata.PackageAssemblyReferences = ReadReferenceSets(element);
                        break;
                    case "contentFiles":
                        manifestMetadata.ContentFiles = ReadContentFiles(element);
                        break;
                    case "repository":
                        manifestMetadata.Repository = ReadRepository(element);
                        break;
                    case "license":
                        manifestMetadata.LicenseMetadata = ReadLicenseMetadata(element);
                        break;
                    case "icon":
                        manifestMetadata.Icon = value;
                        break;
                }
            }
            catch (Exception ex) when (!(ex is InvalidDataException))
            {
                // Wrap the exception to pinpoint the exact property that is problematic,
                // and include a hint about replacement tokens.
                throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture, NuGetResources.Manifest_PropertyValueReadFailure, value, element.Name.LocalName), ex);
            }
        }