in src/NuGet.Clients/NuGet.VisualStudio.Internal.Contracts/Formatters/PackageSearchMetadataContextInfoFormatter.cs [45:213]
protected override PackageSearchMetadataContextInfo? DeserializeCore(ref MessagePackReader reader, MessagePackSerializerOptions options)
{
PackageIdentity? identity = null;
string? title = null;
string? description = null;
string? authors = null;
Uri? iconUrl = null;
string? tags = null;
LicenseMetadata? licenseMetadata = null;
Uri? licenseUrl = null;
string? owners = null;
Uri? projectUrl = null;
DateTimeOffset? published = null;
Uri? reportAbuseUrl = null;
Uri? packageDetailsUrl = null;
string? packagePath = null;
bool requireLicenseAcceptance = false;
string? summary = null;
bool prefixReserved = false;
bool isRecommended = false;
(string modelVersion, string vsixVersion)? recommenderVersion = null;
bool isListed = false;
long? downloadCount = null;
IReadOnlyCollection<PackageDependencyGroup>? dependencySets = null;
IReadOnlyCollection<PackageVulnerabilityMetadataContextInfo>? vulnerabilities = null;
int propertyCount = reader.ReadMapHeader();
for (int propertyIndex = 0; propertyIndex < propertyCount; propertyIndex++)
{
switch (reader.ReadString())
{
case IdentityPropertyName:
if (!reader.TryReadNil())
{
identity = PackageIdentityFormatter.Instance.Deserialize(ref reader, options);
}
break;
case DescriptionPropertyName:
description = reader.ReadString();
break;
case AuthorsPropertyName:
authors = reader.ReadString();
break;
case IconUrlPropertyName:
if (!reader.TryReadNil())
{
iconUrl = options.Resolver.GetFormatter<Uri>()!.Deserialize(ref reader, options);
}
break;
case TitlePropertyName:
title = reader.ReadString();
break;
case TagsPropertyName:
tags = reader.ReadString();
break;
case LicenseMetadataPropertyName:
if (!reader.TryReadNil())
{
licenseMetadata = options.Resolver.GetFormatter<LicenseMetadata>()!.Deserialize(ref reader, options);
}
break;
case LicenseUrlPropertyName:
if (!reader.TryReadNil())
{
licenseUrl = options.Resolver.GetFormatter<Uri>()!.Deserialize(ref reader, options);
}
break;
case ProjectUrlPropertyName:
if (!reader.TryReadNil())
{
projectUrl = options.Resolver.GetFormatter<Uri>()!.Deserialize(ref reader, options);
}
break;
case PackagePathPropertyName:
packagePath = reader.ReadString();
break;
case PublishedPropertyName:
if (!reader.TryReadNil())
{
published = options.Resolver.GetFormatter<DateTimeOffset>()!.Deserialize(ref reader, options);
}
break;
case OwnersPropertyName:
owners = reader.ReadString();
break;
case ReportAbuseUrlPropertyName:
if (!reader.TryReadNil())
{
reportAbuseUrl = options.Resolver.GetFormatter<Uri>()!.Deserialize(ref reader, options);
}
break;
case PackageDetailsUrlPropertyName:
if (!reader.TryReadNil())
{
packageDetailsUrl = options.Resolver.GetFormatter<Uri>()!.Deserialize(ref reader, options);
}
break;
case RequireLicenseAcceptancePropertyName:
requireLicenseAcceptance = reader.ReadBoolean();
break;
case SummaryPropertyName:
summary = reader.ReadString();
break;
case PrefixReservedPropertyName:
prefixReserved = reader.ReadBoolean();
break;
case IsRecommendedPropertyName:
isRecommended = reader.ReadBoolean();
break;
case RecommenderVersionPropertyName:
if (!reader.TryReadNil())
{
recommenderVersion = options.Resolver.GetFormatter<(string, string)>()!.Deserialize(ref reader, options);
}
break;
case DownloadCountPropertyName:
if (!reader.TryReadNil())
{
downloadCount = reader.ReadInt64();
}
break;
case DependencySetsPropertyName:
if (!reader.TryReadNil())
{
dependencySets = options.Resolver.GetFormatter<IReadOnlyCollection<PackageDependencyGroup>>()!.Deserialize(ref reader, options);
}
break;
case VulnerabilitiesPropertyName:
if (!reader.TryReadNil())
{
vulnerabilities = options.Resolver.GetFormatter<IReadOnlyCollection<PackageVulnerabilityMetadataContextInfo>>()!.Deserialize(ref reader, options);
}
break;
case IsListedPropertyName:
isListed = reader.ReadBoolean();
break;
default:
reader.Skip();
break;
}
}
return new PackageSearchMetadataContextInfo()
{
Title = title,
Description = description,
Authors = authors,
IconUrl = iconUrl,
Tags = tags,
Identity = identity,
LicenseMetadata = licenseMetadata,
LicenseUrl = licenseUrl,
IsRecommended = isRecommended,
RecommenderVersion = recommenderVersion,
Owners = owners,
ProjectUrl = projectUrl,
Published = published,
ReportAbuseUrl = reportAbuseUrl,
PackageDetailsUrl = packageDetailsUrl,
PackagePath = packagePath,
RequireLicenseAcceptance = requireLicenseAcceptance,
Summary = summary,
PrefixReserved = prefixReserved,
IsListed = isListed,
DependencySets = dependencySets,
DownloadCount = downloadCount,
Vulnerabilities = vulnerabilities
};
}