protected override void SerializeCore()

in src/NuGet.Clients/NuGet.VisualStudio.Internal.Contracts/Formatters/PackageSearchMetadataContextInfoFormatter.cs [215:371]


        protected override void SerializeCore(ref MessagePackWriter writer, PackageSearchMetadataContextInfo value, MessagePackSerializerOptions options)
        {
            writer.WriteMapHeader(count: 23);
            writer.Write(AuthorsPropertyName);
            writer.Write(value.Authors);

            writer.Write(TitlePropertyName);
            writer.Write(value.Title);

            writer.Write(DescriptionPropertyName);
            writer.Write(value.Description);

            writer.Write(IconUrlPropertyName);
            if (value.IconUrl == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<Uri>()!.Serialize(ref writer, value.IconUrl, options);
            }

            writer.Write(TagsPropertyName);
            writer.Write(value.Tags);

            writer.Write(IdentityPropertyName);
            if (value.Identity == null)
            {
                writer.WriteNil();
            }
            else
            {
                PackageIdentityFormatter.Instance.Serialize(ref writer, value.Identity, options);
            }

            writer.Write(LicenseMetadataPropertyName);
            if (value.LicenseMetadata == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<LicenseMetadata>()!.Serialize(ref writer, value.LicenseMetadata, options);
            }

            writer.Write(LicenseUrlPropertyName);
            if (value.LicenseUrl == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<Uri>()!.Serialize(ref writer, value.LicenseUrl, options);
            }

            writer.Write(OwnersPropertyName);

            writer.Write(value.Owners);

            writer.Write(ProjectUrlPropertyName);
            if (value.ProjectUrl == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<Uri>()!.Serialize(ref writer, value.ProjectUrl, options);
            }

            writer.Write(PublishedPropertyName);
            if (value.Published == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<DateTimeOffset>()!.Serialize(ref writer, value.Published.Value, options);
            }

            writer.Write(ReportAbuseUrlPropertyName);
            if (value.ReportAbuseUrl == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<Uri>()!.Serialize(ref writer, value.ReportAbuseUrl, options);
            }

            writer.Write(PackageDetailsUrlPropertyName);
            if (value.PackageDetailsUrl == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<Uri>()!.Serialize(ref writer, value.PackageDetailsUrl, options);
            }

            writer.Write(PackagePathPropertyName);
            writer.Write(value.PackagePath);

            writer.Write(RequireLicenseAcceptancePropertyName);
            writer.Write(value.RequireLicenseAcceptance);

            writer.Write(SummaryPropertyName);
            writer.Write(value.Summary);

            writer.Write(PrefixReservedPropertyName);
            writer.Write(value.PrefixReserved);

            writer.Write(IsListedPropertyName);
            writer.Write(value.IsListed);

            writer.Write(DependencySetsPropertyName);
            if (value.DependencySets == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<IReadOnlyCollection<PackageDependencyGroup>>()!.Serialize(ref writer, value.DependencySets, options);
            }

            writer.Write(DownloadCountPropertyName);
            if (value.DownloadCount == null)
            {
                writer.WriteNil();
            }
            else
            {
                writer.Write(value.DownloadCount.Value);
            }

            writer.Write(VulnerabilitiesPropertyName);
            if (value.Vulnerabilities == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<IReadOnlyCollection<PackageVulnerabilityMetadataContextInfo>>()!.Serialize(ref writer, value.Vulnerabilities, options);
            }

            writer.Write(IsRecommendedPropertyName);
            writer.Write(value.IsRecommended);

            writer.Write(RecommenderVersionPropertyName);
            if (value.RecommenderVersion == null)
            {
                writer.WriteNil();
            }
            else
            {
                options.Resolver.GetFormatter<(string, string)>()!.Serialize(ref writer, value.RecommenderVersion.Value, options);
            }
        }