diff --git a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp3.0.cs b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp3.0.cs index 5f2373b098..d8908e8bae 100644 --- a/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp3.0.cs +++ b/src/Mvc/Mvc.TagHelpers/ref/Microsoft.AspNetCore.Mvc.TagHelpers.netcoreapp3.0.cs @@ -221,10 +221,15 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers [Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElementAttribute("img", Attributes="asp-append-version,src", TagStructure=Microsoft.AspNetCore.Razor.TagHelpers.TagStructure.WithoutEndTag)] public partial class ImageTagHelper : Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper { + [System.ObsoleteAttribute("This constructor is obsolete and will be removed in a future version.")] public ImageTagHelper(Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider cacheProvider, Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) : base (default(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory), default(System.Text.Encodings.Web.HtmlEncoder)) { } + [Microsoft.Extensions.DependencyInjection.ActivatorUtilitiesConstructorAttribute] + public ImageTagHelper(Microsoft.AspNetCore.Mvc.ViewFeatures.IFileVersionProvider fileVersionProvider, System.Text.Encodings.Web.HtmlEncoder htmlEncoder, Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory urlHelperFactory) : base (default(Microsoft.AspNetCore.Mvc.Routing.IUrlHelperFactory), default(System.Text.Encodings.Web.HtmlEncoder)) { } [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("asp-append-version")] public bool AppendVersion { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } } + [System.ObsoleteAttribute("This property is obsolete and will be removed in a future version.")] protected internal Microsoft.Extensions.Caching.Memory.IMemoryCache Cache { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + [System.ObsoleteAttribute("This property is obsolete and will be removed in a future version.")] protected internal Microsoft.AspNetCore.Hosting.IWebHostEnvironment HostingEnvironment { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } public override int Order { get { throw null; } } [Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeNameAttribute("src")] diff --git a/src/Mvc/Mvc.TagHelpers/src/AnchorTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/AnchorTagHelper.cs index 5eefa99543..0e215b72cf 100644 --- a/src/Mvc/Mvc.TagHelpers/src/AnchorTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/AnchorTagHelper.cs @@ -52,6 +52,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } /// diff --git a/src/Mvc/Mvc.TagHelpers/src/Cache/DistributedCacheTagHelperService.cs b/src/Mvc/Mvc.TagHelpers/src/Cache/DistributedCacheTagHelperService.cs index 88c4e0332c..167f30b484 100644 --- a/src/Mvc/Mvc.TagHelpers/src/Cache/DistributedCacheTagHelperService.cs +++ b/src/Mvc/Mvc.TagHelpers/src/Cache/DistributedCacheTagHelperService.cs @@ -39,6 +39,13 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers.Cache private readonly ILogger _logger; private readonly ConcurrentDictionary> _workers; + /// + /// Creates a new . + /// + /// The 's . + /// The for cache value serialization. + /// The used to encode cache content. + /// The . public DistributedCacheTagHelperService( IDistributedCacheTagHelperStorage storage, IDistributedCacheTagHelperFormatter formatter, diff --git a/src/Mvc/Mvc.TagHelpers/src/CacheTagHelperMemoryCacheFactory.cs b/src/Mvc/Mvc.TagHelpers/src/CacheTagHelperMemoryCacheFactory.cs index 6b1ac41fb8..1bd126087d 100644 --- a/src/Mvc/Mvc.TagHelpers/src/CacheTagHelperMemoryCacheFactory.cs +++ b/src/Mvc/Mvc.TagHelpers/src/CacheTagHelperMemoryCacheFactory.cs @@ -6,8 +6,16 @@ using Microsoft.Extensions.Options; namespace Microsoft.AspNetCore.Mvc.TagHelpers { + /// + /// A factory for s configured using . + /// uses this factory to set its . + /// public class CacheTagHelperMemoryCacheFactory { + /// + /// Creates a new . + /// + /// The to apply to the . public CacheTagHelperMemoryCacheFactory(IOptions options) { Cache = new MemoryCache(new MemoryCacheOptions @@ -22,6 +30,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers Cache = cache; } + /// + /// Gets the . + /// public IMemoryCache Cache { get; } } } diff --git a/src/Mvc/Mvc.TagHelpers/src/EnvironmentTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/EnvironmentTagHelper.cs index 1c96aec479..b715c4db24 100644 --- a/src/Mvc/Mvc.TagHelpers/src/EnvironmentTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/EnvironmentTagHelper.cs @@ -59,6 +59,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public string Exclude { get; set; } + /// + /// Gets the for the application. + /// protected IWebHostEnvironment HostingEnvironment { get; } /// diff --git a/src/Mvc/Mvc.TagHelpers/src/FormActionTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/FormActionTagHelper.cs index 66d22ea10c..7e42106f0f 100644 --- a/src/Mvc/Mvc.TagHelpers/src/FormActionTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/FormActionTagHelper.cs @@ -98,6 +98,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers [ViewContext] public ViewContext ViewContext { get; set; } + /// + /// Gets the used to create an to generate links. + /// protected IUrlHelperFactory UrlHelperFactory { get; } /// diff --git a/src/Mvc/Mvc.TagHelpers/src/FormTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/FormTagHelper.cs index ad10121751..ad33eb254a 100644 --- a/src/Mvc/Mvc.TagHelpers/src/FormTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/FormTagHelper.cs @@ -45,10 +45,16 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } /// diff --git a/src/Mvc/Mvc.TagHelpers/src/ImageTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/ImageTagHelper.cs index 2b60c637e9..ce3452ed18 100644 --- a/src/Mvc/Mvc.TagHelpers/src/ImageTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/ImageTagHelper.cs @@ -32,13 +32,31 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// /// Creates a new . /// - /// The . - /// The . /// The . /// The to use. /// The . // Decorated with ActivatorUtilitiesConstructor since we want to influence tag helper activation // to use this constructor in the default case. + [ActivatorUtilitiesConstructor] + public ImageTagHelper( + IFileVersionProvider fileVersionProvider, + HtmlEncoder htmlEncoder, + IUrlHelperFactory urlHelperFactory) + : base(urlHelperFactory, htmlEncoder) + { + FileVersionProvider = fileVersionProvider; + } + + /// + /// Creates a new . + /// This constructor is obsolete and will be removed in a future version. + /// + /// The . + /// The . + /// The . + /// The to use. + /// The . + [Obsolete("This constructor is obsolete and will be removed in a future version.")] public ImageTagHelper( IWebHostEnvironment hostingEnvironment, TagHelperMemoryCacheProvider cacheProvider, @@ -73,8 +91,18 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers [HtmlAttributeName(AppendVersionAttributeName)] public bool AppendVersion { get; set; } + /// + /// Gets the for the application. + /// This property is obsolete and will be removed in a future version. + /// + [Obsolete("This property is obsolete and will be removed in a future version.")] protected internal IWebHostEnvironment HostingEnvironment { get; } + /// + /// Gets the used to store globbed urls. + /// This property is obsolete and will be removed in a future version. + /// + [Obsolete("This property is obsolete and will be removed in a future version.")] protected internal IMemoryCache Cache { get; } internal IFileVersionProvider FileVersionProvider { get; private set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs index 16e7950dba..d3df4d963d 100644 --- a/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs @@ -76,8 +76,14 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/LabelTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/LabelTagHelper.cs index b0668eed68..aebfe3da2e 100644 --- a/src/Mvc/Mvc.TagHelpers/src/LabelTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/LabelTagHelper.cs @@ -29,10 +29,16 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } /// diff --git a/src/Mvc/Mvc.TagHelpers/src/LinkTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/LinkTagHelper.cs index 4bd68aea49..ac090a14cf 100644 --- a/src/Mvc/Mvc.TagHelpers/src/LinkTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/LinkTagHelper.cs @@ -210,12 +210,24 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers [HtmlAttributeName(FallbackTestValueAttributeName)] public string FallbackTestValue { get; set; } + /// + /// Gets the for the application. + /// protected internal IWebHostEnvironment HostingEnvironment { get; } + /// + /// Gets the used to store globbed urls. + /// protected internal IMemoryCache Cache { get; } + /// + /// Gets the used to encode fallback information. + /// protected JavaScriptEncoder JavaScriptEncoder { get; } + /// + /// Gets the used to populate included and excluded urls. + /// // Internal for ease of use when testing. protected internal GlobbingUrlBuilder GlobbingUrlBuilder { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj b/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj index 1ab0b5c30a..494bda2166 100644 --- a/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj +++ b/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj @@ -3,7 +3,6 @@ ASP.NET Core MVC default tag helpers. Contains tag helpers for anchor tags, HTML input elements, caching, scripts, links (for CSS), and more. netcoreapp3.0 - $(NoWarn);CS1591 true aspnetcore;aspnetcoremvc;taghelper;taghelpers true diff --git a/src/Mvc/Mvc.TagHelpers/src/OptionTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/OptionTagHelper.cs index 3cfaf3bb4c..1d8ac35550 100644 --- a/src/Mvc/Mvc.TagHelpers/src/OptionTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/OptionTagHelper.cs @@ -32,8 +32,14 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/PartialTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/PartialTagHelper.cs index 3797ea5ff1..01ab2aabc3 100644 --- a/src/Mvc/Mvc.TagHelpers/src/PartialTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/PartialTagHelper.cs @@ -32,6 +32,11 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers private readonly ICompositeViewEngine _viewEngine; private readonly IViewBufferScope _viewBufferScope; + /// + /// Creates a new . + /// + /// The used to locate the partial view. + /// The . public PartialTagHelper( ICompositeViewEngine viewEngine, IViewBufferScope viewBufferScope) @@ -91,6 +96,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public ViewDataDictionary ViewData { get; set; } + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/RenderAtEndOfFormTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/RenderAtEndOfFormTagHelper.cs index c819a38c98..193639bec3 100644 --- a/src/Mvc/Mvc.TagHelpers/src/RenderAtEndOfFormTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/RenderAtEndOfFormTagHelper.cs @@ -23,6 +23,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -900; + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/ScriptTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/ScriptTagHelper.cs index 629d2a9f37..27cc753dd2 100644 --- a/src/Mvc/Mvc.TagHelpers/src/ScriptTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/ScriptTagHelper.cs @@ -176,14 +176,26 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers [HtmlAttributeName(FallbackTestExpressionAttributeName)] public string FallbackTestExpression { get; set; } + /// + /// Gets the for the application. + /// protected internal IWebHostEnvironment HostingEnvironment { get; } + /// + /// Gets the used to store globbed urls. + /// protected internal IMemoryCache Cache { get; private set; } internal IFileVersionProvider FileVersionProvider { get; private set; } + /// + /// Gets the used to encode fallback information. + /// protected JavaScriptEncoder JavaScriptEncoder { get; } + /// + /// Gets the used to populate included and excluded urls. + /// // Internal for ease of use when testing. protected internal GlobbingUrlBuilder GlobbingUrlBuilder { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/SelectTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/SelectTagHelper.cs index c3d946bc8d..0212d75eee 100644 --- a/src/Mvc/Mvc.TagHelpers/src/SelectTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/SelectTagHelper.cs @@ -37,8 +37,14 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/TextAreaTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/TextAreaTagHelper.cs index 293b60a05a..f57f8ad0e4 100644 --- a/src/Mvc/Mvc.TagHelpers/src/TextAreaTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/TextAreaTagHelper.cs @@ -29,8 +29,14 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/ValidationMessageTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/ValidationMessageTagHelper.cs index 85d8d07837..7949148f02 100644 --- a/src/Mvc/Mvc.TagHelpers/src/ValidationMessageTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/ValidationMessageTagHelper.cs @@ -32,12 +32,21 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } + /// + /// Gets the used to generate the 's output. + /// protected IHtmlGenerator Generator { get; } + /// + /// Gets an expression to be evaluated against the current model. + /// [HtmlAttributeName(ValidationForAttributeName)] public ModelExpression For { get; set; } diff --git a/src/Mvc/Mvc.TagHelpers/src/ValidationSummaryTagHelper.cs b/src/Mvc/Mvc.TagHelpers/src/ValidationSummaryTagHelper.cs index ee090b28c6..e5c39fa59a 100644 --- a/src/Mvc/Mvc.TagHelpers/src/ValidationSummaryTagHelper.cs +++ b/src/Mvc/Mvc.TagHelpers/src/ValidationSummaryTagHelper.cs @@ -30,10 +30,16 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers /// public override int Order => -1000; + /// + /// Gets the of the executing view. + /// [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } + /// + /// Gets the used to generate the 's output. + /// [HtmlAttributeNotBound] protected IHtmlGenerator Generator { get; } diff --git a/src/Mvc/Mvc.TagHelpers/test/DefaultTagHelperActivatorTest.cs b/src/Mvc/Mvc.TagHelpers/test/DefaultTagHelperActivatorTest.cs index 8688ac1e1f..d0d8aa1455 100644 --- a/src/Mvc/Mvc.TagHelpers/test/DefaultTagHelperActivatorTest.cs +++ b/src/Mvc/Mvc.TagHelpers/test/DefaultTagHelperActivatorTest.cs @@ -53,20 +53,6 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Internal Assert.Same(FileVersionProvider, linkTagHelper.FileVersionProvider); } - [Fact] - public void ImageTagHelper_DoesNotUseMemoryCacheInstanceFromDI() - { - // Arrange - var activator = new DefaultTagHelperActivator(new TypeActivatorCache()); - var viewContext = CreateViewContext(); - - var imageTagHelper = activator.Create(viewContext); - - Assert.Same(CacheProvider.Cache, imageTagHelper.Cache); - Assert.Same(HostingEnvironment, imageTagHelper.HostingEnvironment); - Assert.Same(FileVersionProvider, imageTagHelper.FileVersionProvider); - } - private ViewContext CreateViewContext() { var services = new ServiceCollection() diff --git a/src/Mvc/Mvc.TagHelpers/test/ImageTagHelperTest.cs b/src/Mvc/Mvc.TagHelpers/test/ImageTagHelperTest.cs index 35b012cc95..e31de4ed11 100644 --- a/src/Mvc/Mvc.TagHelpers/test/ImageTagHelperTest.cs +++ b/src/Mvc/Mvc.TagHelpers/test/ImageTagHelperTest.cs @@ -264,8 +264,6 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers var fileVersionProvider = new DefaultFileVersionProvider(hostingEnvironment, cacheProvider); return new ImageTagHelper( - hostingEnvironment, - new TagHelperMemoryCacheProvider(), fileVersionProvider, new HtmlTestEncoder(), urlHelperFactory)