From 98e74b9a69b7b277fc9a78c068de967185104d69 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 3 Jan 2018 16:02:09 -0800 Subject: [PATCH] Added TagHelperSerializationBenchmark --- ...rosoft.AspNetCore.Razor.Performance.csproj | 10 ++++ .../TagHelperSerializationBenchmark.cs | 54 +++++++++++++++++++ .../taghelpers.json | 1 + .../Properties/AssemblyInfo.cs | 1 + 4 files changed, 66 insertions(+) create mode 100644 benchmarks/Microsoft.AspNetCore.Razor.Performance/TagHelperSerializationBenchmark.cs create mode 100644 benchmarks/Microsoft.AspNetCore.Razor.Performance/taghelpers.json diff --git a/benchmarks/Microsoft.AspNetCore.Razor.Performance/Microsoft.AspNetCore.Razor.Performance.csproj b/benchmarks/Microsoft.AspNetCore.Razor.Performance/Microsoft.AspNetCore.Razor.Performance.csproj index e39f6120b4..e63049a74f 100644 --- a/benchmarks/Microsoft.AspNetCore.Razor.Performance/Microsoft.AspNetCore.Razor.Performance.csproj +++ b/benchmarks/Microsoft.AspNetCore.Razor.Performance/Microsoft.AspNetCore.Razor.Performance.csproj @@ -12,8 +12,18 @@ + + + Shared\RazorDiagnosticJsonConverter.cs + + + Shared\TagHelperDescriptorJsonConverter.cs + + + + diff --git a/benchmarks/Microsoft.AspNetCore.Razor.Performance/TagHelperSerializationBenchmark.cs b/benchmarks/Microsoft.AspNetCore.Razor.Performance/TagHelperSerializationBenchmark.cs new file mode 100644 index 0000000000..bfee04164f --- /dev/null +++ b/benchmarks/Microsoft.AspNetCore.Razor.Performance/TagHelperSerializationBenchmark.cs @@ -0,0 +1,54 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using BenchmarkDotNet.Attributes; +using Microsoft.AspNetCore.Razor.Language; +using Microsoft.VisualStudio.LanguageServices.Razor; +using Newtonsoft.Json; + +namespace Microsoft.AspNetCore.Razor.Performance +{ + public class TagHelperSerializationBenchmark + { + private readonly byte[] _tagHelperBuffer; + + public TagHelperSerializationBenchmark() + { + var current = new DirectoryInfo(AppContext.BaseDirectory); + while (current != null && !File.Exists(Path.Combine(current.FullName, "taghelpers.json"))) + { + current = current.Parent; + } + + var tagHelperFilePath = Path.Combine(current.FullName, "taghelpers.json"); + _tagHelperBuffer = File.ReadAllBytes(tagHelperFilePath); + } + + [Benchmark(Description = "Razor TagHelper Serialization")] + public void TagHelper_Serialization_RoundTrip() + { + var serializer = new JsonSerializer(); + serializer.Converters.Add(new RazorDiagnosticJsonConverter()); + serializer.Converters.Add(new TagHelperDescriptorJsonConverter()); + + // Deserialize from json file. + IReadOnlyList tagHelpers; + using (var stream = new MemoryStream(_tagHelperBuffer)) + using (var reader = new JsonTextReader(new StreamReader(stream))) + { + tagHelpers = serializer.Deserialize>(reader); + } + + // Serialize back to json. + using (var stream = new MemoryStream()) + using (var writer = new StreamWriter(stream, Encoding.UTF8, bufferSize: 4096)) + { + serializer.Serialize(writer, tagHelpers); + } + } + } +} diff --git a/benchmarks/Microsoft.AspNetCore.Razor.Performance/taghelpers.json b/benchmarks/Microsoft.AspNetCore.Razor.Performance/taghelpers.json new file mode 100644 index 0000000000..27dcb16038 --- /dev/null +++ b/benchmarks/Microsoft.AspNetCore.Razor.Performance/taghelpers.json @@ -0,0 +1 @@ +[{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper","TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"asp-prerender-module","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-prerender-module","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.SpaServices","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-prerender-module","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper.ModuleName","Diagnostics":[],"Metadata":{"Common.PropertyName":"ModuleName"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-prerender-export","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper.ExportName","Diagnostics":[],"Metadata":{"Common.PropertyName":"ExportName"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-prerender-data","IndexerNamePrefix":null,"TypeName":"System.Object","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"object Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper.CustomDataParameter","Diagnostics":[],"Metadata":{"Common.PropertyName":"CustomDataParameter"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-prerender-timeout","IndexerNamePrefix":null,"TypeName":"System.Int32","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"int Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper.TimeoutMillisecondsParameter","Diagnostics":[],"Metadata":{"Common.PropertyName":"TimeoutMillisecondsParameter"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.SpaServices.Prerendering.PrerenderTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper","TagMatchingRules":[{"TagName":"a","Attributes":[{"Name":"asp-action","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-action","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-controller","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-controller","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-area","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-area","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-page","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-page-handler","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page-handler","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-fragment","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fragment","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-host","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-host","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-protocol","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-protocol","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-route","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-route","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-all-route-data","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-all-route-data","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"asp-route-","NameComparison":1,"Value":null,"ValueComparison":0,"DisplayName":"asp-route-...","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-action","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Action","Diagnostics":[],"Metadata":{"Common.PropertyName":"Action"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-controller","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Controller","Diagnostics":[],"Metadata":{"Common.PropertyName":"Controller"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-area","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Area","Diagnostics":[],"Metadata":{"Common.PropertyName":"Area"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-page","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Page","Diagnostics":[],"Metadata":{"Common.PropertyName":"Page"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-page-handler","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.PageHandler","Diagnostics":[],"Metadata":{"Common.PropertyName":"PageHandler"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-protocol","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Protocol","Diagnostics":[],"Metadata":{"Common.PropertyName":"Protocol"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-host","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Host","Diagnostics":[],"Metadata":{"Common.PropertyName":"Host"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fragment","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Fragment","Diagnostics":[],"Metadata":{"Common.PropertyName":"Fragment"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-route","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.Route","Diagnostics":[],"Metadata":{"Common.PropertyName":"Route"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":true,"IsEnum":false,"IsStringProperty":false,"Name":"asp-all-route-data","IndexerNamePrefix":"asp-route-","TypeName":"System.Collections.Generic.IDictionary","IndexerTypeName":"System.String","HasIndexer":true,"Documentation":null,"DisplayName":"System.Collections.Generic.IDictionary Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper.RouteValues","Diagnostics":[],"Metadata":{"Common.PropertyName":"RouteValues"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper","TagMatchingRules":[{"TagName":"cache","Attributes":[],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"priority","IndexerNamePrefix":null,"TypeName":"Microsoft.Extensions.Caching.Memory.CacheItemPriority?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"Microsoft.Extensions.Caching.Memory.CacheItemPriority? Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.Priority","Diagnostics":[],"Metadata":{"Common.PropertyName":"Priority"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.VaryBy","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryBy"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-header","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.VaryByHeader","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByHeader"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-query","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.VaryByQuery","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByQuery"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-route","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.VaryByRoute","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByRoute"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-cookie","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.VaryByCookie","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByCookie"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"vary-by-user","IndexerNamePrefix":null,"TypeName":"System.Boolean","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"bool Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.VaryByUser","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByUser"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"expires-on","IndexerNamePrefix":null,"TypeName":"System.DateTimeOffset?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.DateTimeOffset? Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.ExpiresOn","Diagnostics":[],"Metadata":{"Common.PropertyName":"ExpiresOn"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"expires-after","IndexerNamePrefix":null,"TypeName":"System.TimeSpan?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.TimeSpan? Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.ExpiresAfter","Diagnostics":[],"Metadata":{"Common.PropertyName":"ExpiresAfter"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"expires-sliding","IndexerNamePrefix":null,"TypeName":"System.TimeSpan?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.TimeSpan? Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.ExpiresSliding","Diagnostics":[],"Metadata":{"Common.PropertyName":"ExpiresSliding"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"enabled","IndexerNamePrefix":null,"TypeName":"System.Boolean","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"bool Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper.Enabled","Diagnostics":[],"Metadata":{"Common.PropertyName":"Enabled"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper","TagMatchingRules":[{"TagName":"distributed-cache","Attributes":[{"Name":"name","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"name","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"name","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.Name","Diagnostics":[],"Metadata":{"Common.PropertyName":"Name"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.VaryBy","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryBy"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-header","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.VaryByHeader","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByHeader"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-query","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.VaryByQuery","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByQuery"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-route","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.VaryByRoute","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByRoute"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"vary-by-cookie","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.VaryByCookie","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByCookie"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"vary-by-user","IndexerNamePrefix":null,"TypeName":"System.Boolean","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"bool Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.VaryByUser","Diagnostics":[],"Metadata":{"Common.PropertyName":"VaryByUser"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"expires-on","IndexerNamePrefix":null,"TypeName":"System.DateTimeOffset?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.DateTimeOffset? Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.ExpiresOn","Diagnostics":[],"Metadata":{"Common.PropertyName":"ExpiresOn"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"expires-after","IndexerNamePrefix":null,"TypeName":"System.TimeSpan?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.TimeSpan? Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.ExpiresAfter","Diagnostics":[],"Metadata":{"Common.PropertyName":"ExpiresAfter"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"expires-sliding","IndexerNamePrefix":null,"TypeName":"System.TimeSpan?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.TimeSpan? Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.ExpiresSliding","Diagnostics":[],"Metadata":{"Common.PropertyName":"ExpiresSliding"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"enabled","IndexerNamePrefix":null,"TypeName":"System.Boolean","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"bool Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper.Enabled","Diagnostics":[],"Metadata":{"Common.PropertyName":"Enabled"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper","TagMatchingRules":[{"TagName":"environment","Attributes":[],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"names","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Names","Diagnostics":[],"Metadata":{"Common.PropertyName":"Names"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"include","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Include","Diagnostics":[],"Metadata":{"Common.PropertyName":"Include"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"exclude","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper.Exclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"Exclude"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper","TagMatchingRules":[{"TagName":"button","Attributes":[{"Name":"asp-action","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-action","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-controller","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-controller","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-area","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-area","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-page","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-page-handler","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page-handler","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-fragment","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fragment","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-route","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-route","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-all-route-data","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-all-route-data","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"asp-route-","NameComparison":1,"Value":null,"ValueComparison":0,"DisplayName":"asp-route-...","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-action","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-action","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-controller","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-controller","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-area","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-area","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-page","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-page-handler","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page-handler","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-fragment","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fragment","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-route","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-route","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-all-route-data","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-all-route-data","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"image","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-route-","NameComparison":1,"Value":null,"ValueComparison":0,"DisplayName":"asp-route-...","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-action","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-action","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-controller","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-controller","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-area","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-area","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-page","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-page-handler","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-page-handler","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-fragment","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fragment","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-route","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-route","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-all-route-data","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-all-route-data","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"type","NameComparison":0,"Value":"submit","ValueComparison":1,"DisplayName":"type","Diagnostics":[],"HasErrors":false},{"Name":"asp-route-","NameComparison":1,"Value":null,"ValueComparison":0,"DisplayName":"asp-route-...","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-action","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Action","Diagnostics":[],"Metadata":{"Common.PropertyName":"Action"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-controller","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Controller","Diagnostics":[],"Metadata":{"Common.PropertyName":"Controller"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-area","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Area","Diagnostics":[],"Metadata":{"Common.PropertyName":"Area"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-page","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Page","Diagnostics":[],"Metadata":{"Common.PropertyName":"Page"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-page-handler","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.PageHandler","Diagnostics":[],"Metadata":{"Common.PropertyName":"PageHandler"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fragment","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Fragment","Diagnostics":[],"Metadata":{"Common.PropertyName":"Fragment"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-route","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.Route","Diagnostics":[],"Metadata":{"Common.PropertyName":"Route"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":true,"IsEnum":false,"IsStringProperty":false,"Name":"asp-all-route-data","IndexerNamePrefix":"asp-route-","TypeName":"System.Collections.Generic.IDictionary","IndexerTypeName":"System.String","HasIndexer":true,"Documentation":null,"DisplayName":"System.Collections.Generic.IDictionary Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper.RouteValues","Diagnostics":[],"Metadata":{"Common.PropertyName":"RouteValues"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper","TagMatchingRules":[{"TagName":"form","Attributes":[],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-action","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Action","Diagnostics":[],"Metadata":{"Common.PropertyName":"Action"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-controller","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Controller","Diagnostics":[],"Metadata":{"Common.PropertyName":"Controller"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-area","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Area","Diagnostics":[],"Metadata":{"Common.PropertyName":"Area"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-page","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Page","Diagnostics":[],"Metadata":{"Common.PropertyName":"Page"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-page-handler","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.PageHandler","Diagnostics":[],"Metadata":{"Common.PropertyName":"PageHandler"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-antiforgery","IndexerNamePrefix":null,"TypeName":"System.Boolean?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.Boolean? Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Antiforgery","Diagnostics":[],"Metadata":{"Common.PropertyName":"Antiforgery"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fragment","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Fragment","Diagnostics":[],"Metadata":{"Common.PropertyName":"Fragment"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-route","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Route","Diagnostics":[],"Metadata":{"Common.PropertyName":"Route"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"method","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.Method","Diagnostics":[],"Metadata":{"Common.PropertyName":"Method"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":true,"IsEnum":false,"IsStringProperty":false,"Name":"asp-all-route-data","IndexerNamePrefix":"asp-route-","TypeName":"System.Collections.Generic.IDictionary","IndexerTypeName":"System.String","HasIndexer":true,"Documentation":null,"DisplayName":"System.Collections.Generic.IDictionary Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper.RouteValues","Diagnostics":[],"Metadata":{"Common.PropertyName":"RouteValues"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper","TagMatchingRules":[{"TagName":"img","Attributes":[{"Name":"asp-append-version","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-append-version","Diagnostics":[],"HasErrors":false},{"Name":"src","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"src","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.Src","Diagnostics":[],"Metadata":{"Common.PropertyName":"Src"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-append-version","IndexerNamePrefix":null,"TypeName":"System.Boolean","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"bool Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.AppendVersion","Diagnostics":[],"Metadata":{"Common.PropertyName":"AppendVersion"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper","TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"asp-for","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-for","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-for","IndexerNamePrefix":null,"TypeName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.For","Diagnostics":[],"Metadata":{"Common.PropertyName":"For"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-format","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Format","Diagnostics":[],"Metadata":{"Common.PropertyName":"Format"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"type","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.InputTypeName","Diagnostics":[],"Metadata":{"Common.PropertyName":"InputTypeName"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"value","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper.Value","Diagnostics":[],"Metadata":{"Common.PropertyName":"Value"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper","TagMatchingRules":[{"TagName":"label","Attributes":[{"Name":"asp-for","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-for","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-for","IndexerNamePrefix":null,"TypeName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper.For","Diagnostics":[],"Metadata":{"Common.PropertyName":"For"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper","TagMatchingRules":[{"TagName":"link","Attributes":[{"Name":"asp-href-include","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-href-include","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-href-exclude","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-href-exclude","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-fallback-href","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-href","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-fallback-href-include","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-href-include","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-fallback-href-exclude","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-href-exclude","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-fallback-test-class","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-test-class","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-fallback-test-property","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-test-property","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-fallback-test-value","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-test-value","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"asp-append-version","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-append-version","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"href","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.Href","Diagnostics":[],"Metadata":{"Common.PropertyName":"Href"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-href-include","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.HrefInclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"HrefInclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-href-exclude","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.HrefExclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"HrefExclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-href","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHref","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackHref"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-append-version","IndexerNamePrefix":null,"TypeName":"System.Boolean?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.Boolean? Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.AppendVersion","Diagnostics":[],"Metadata":{"Common.PropertyName":"AppendVersion"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-href-include","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHrefInclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackHrefInclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-href-exclude","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackHrefExclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackHrefExclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-test-class","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestClass","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackTestClass"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-test-property","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestProperty","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackTestProperty"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-test-value","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.FallbackTestValue","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackTestValue"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper","TagMatchingRules":[{"TagName":"option","Attributes":[],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"value","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper.Value","Diagnostics":[],"Metadata":{"Common.PropertyName":"Value"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper","TagMatchingRules":[{"TagName":"form","Attributes":[],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper","TagMatchingRules":[{"TagName":"script","Attributes":[{"Name":"asp-src-include","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-src-include","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"script","Attributes":[{"Name":"asp-src-exclude","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-src-exclude","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"script","Attributes":[{"Name":"asp-fallback-src","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"script","Attributes":[{"Name":"asp-fallback-src-include","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-src-include","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"script","Attributes":[{"Name":"asp-fallback-src-exclude","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-src-exclude","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"script","Attributes":[{"Name":"asp-fallback-test","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-fallback-test","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"script","Attributes":[{"Name":"asp-append-version","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-append-version","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"src","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.Src","Diagnostics":[],"Metadata":{"Common.PropertyName":"Src"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-src-include","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SrcInclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"SrcInclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-src-exclude","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.SrcExclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"SrcExclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-src","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrc","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackSrc"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-append-version","IndexerNamePrefix":null,"TypeName":"System.Boolean?","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.Boolean? Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.AppendVersion","Diagnostics":[],"Metadata":{"Common.PropertyName":"AppendVersion"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-src-include","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrcInclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackSrcInclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-src-exclude","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackSrcExclude","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackSrcExclude"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":true,"Name":"asp-fallback-test","IndexerNamePrefix":null,"TypeName":"System.String","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"string Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.FallbackTestExpression","Diagnostics":[],"Metadata":{"Common.PropertyName":"FallbackTestExpression"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper","TagMatchingRules":[{"TagName":"select","Attributes":[{"Name":"asp-for","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-for","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"select","Attributes":[{"Name":"asp-items","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-items","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-for","IndexerNamePrefix":null,"TypeName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.For","Diagnostics":[],"Metadata":{"Common.PropertyName":"For"},"HasErrors":false},{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-items","IndexerNamePrefix":null,"TypeName":"System.Collections.Generic.IEnumerable","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"System.Collections.Generic.IEnumerable Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper.Items","Diagnostics":[],"Metadata":{"Common.PropertyName":"Items"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper","TagMatchingRules":[{"TagName":"textarea","Attributes":[{"Name":"asp-for","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-for","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-for","IndexerNamePrefix":null,"TypeName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper.For","Diagnostics":[],"Metadata":{"Common.PropertyName":"For"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper","TagMatchingRules":[{"TagName":"span","Attributes":[{"Name":"asp-validation-for","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-validation-for","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":false,"IsStringProperty":false,"Name":"asp-validation-for","IndexerNamePrefix":null,"TypeName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper.For","Diagnostics":[],"Metadata":{"Common.PropertyName":"For"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper","TagMatchingRules":[{"TagName":"div","Attributes":[{"Name":"asp-validation-summary","NameComparison":0,"Value":null,"ValueComparison":0,"DisplayName":"asp-validation-summary","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.TagHelpers","BoundAttributes":[{"Kind":"ITagHelper","IsIndexerStringProperty":false,"IsEnum":true,"IsStringProperty":false,"Name":"asp-validation-summary","IndexerNamePrefix":null,"TypeName":"Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary","IndexerTypeName":null,"HasIndexer":false,"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper.ValidationSummary","Diagnostics":[],"Metadata":{"Common.PropertyName":"ValidationSummary"},"HasErrors":false}],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper","TagMatchingRules":[{"TagName":"body","Attributes":[],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.Razor","BoundAttributes":[],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper","TagMatchingRules":[{"TagName":"head","Attributes":[],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.Razor","BoundAttributes":[],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper"},"HasErrors":false},{"Kind":"ITagHelper","Name":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper","TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"itemid","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"itemid","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"a","Attributes":[{"Name":"href","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"href","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"applet","Attributes":[{"Name":"archive","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"archive","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"area","Attributes":[{"Name":"href","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"href","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"audio","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"base","Attributes":[{"Name":"href","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"href","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"blockquote","Attributes":[{"Name":"cite","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"cite","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"button","Attributes":[{"Name":"formaction","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"formaction","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"del","Attributes":[{"Name":"cite","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"cite","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"embed","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"form","Attributes":[{"Name":"action","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"action","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"html","Attributes":[{"Name":"manifest","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"manifest","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"iframe","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"img","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"img","Attributes":[{"Name":"srcset","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"srcset","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"input","Attributes":[{"Name":"formaction","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"formaction","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"ins","Attributes":[{"Name":"cite","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"cite","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"link","Attributes":[{"Name":"href","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"href","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"menuitem","Attributes":[{"Name":"icon","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"icon","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"object","Attributes":[{"Name":"archive","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"archive","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"object","Attributes":[{"Name":"data","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"data","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"q","Attributes":[{"Name":"cite","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"cite","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"script","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"source","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"source","Attributes":[{"Name":"srcset","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"srcset","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"track","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":2,"Diagnostics":[],"HasErrors":false},{"TagName":"video","Attributes":[{"Name":"src","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"src","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false},{"TagName":"video","Attributes":[{"Name":"poster","NameComparison":0,"Value":"~/","ValueComparison":2,"DisplayName":"poster","Diagnostics":[],"HasErrors":false}],"ParentTag":null,"TagStructure":0,"Diagnostics":[],"HasErrors":false}],"AssemblyName":"Microsoft.AspNetCore.Mvc.Razor","BoundAttributes":[],"AllowedChildTags":[],"Documentation":null,"DisplayName":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper","TagOutputHint":null,"Diagnostics":[],"Metadata":{"Runtime.Name":"ITagHelper","Common.TypeName":"Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper"},"HasErrors":false}] \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.Razor.Language/Properties/AssemblyInfo.cs b/src/Microsoft.AspNetCore.Razor.Language/Properties/AssemblyInfo.cs index c97fe625b4..7a1cad9228 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Properties/AssemblyInfo.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Properties/AssemblyInfo.cs @@ -6,6 +6,7 @@ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Razor.GenerateTool, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Razor.Language.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] +[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Razor.Performance, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Razor.TagHelperTool, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: InternalsVisibleTo("Microsoft.AspNetCore.Razor.Test.Common, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] [assembly: InternalsVisibleTo("Microsoft.CodeAnalysis.Razor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]