diff --git a/src/Microsoft.AspNet.Mvc.Razor/RazorPage.cs b/src/Microsoft.AspNet.Mvc.Razor/RazorPage.cs index cd15dc46af..710cfb611b 100644 --- a/src/Microsoft.AspNet.Mvc.Razor/RazorPage.cs +++ b/src/Microsoft.AspNet.Mvc.Razor/RazorPage.cs @@ -25,7 +25,6 @@ namespace Microsoft.AspNet.Mvc.Razor private readonly Stack _writerScopes; private TextWriter _originalWriter; private IUrlHelper _urlHelper; - private ITypeActivator _typeActivator; private ITagHelperActivator _tagHelperActivator; private bool _renderedBody; @@ -114,19 +113,6 @@ namespace Microsoft.AspNet.Mvc.Razor /// public abstract Task ExecuteAsync(); - private ITypeActivator TypeActivator - { - get - { - if(_typeActivator == null) - { - _typeActivator = ViewContext.HttpContext.RequestServices.GetService(); - } - - return _typeActivator; - } - } - private ITagHelperActivator TagHelperActivator { get @@ -139,19 +125,17 @@ namespace Microsoft.AspNet.Mvc.Razor return _tagHelperActivator; } } - /// /// Creates and activates a . /// /// A type. /// The activated . /// - /// If the implements the - /// method is called with . + /// must have a parameterless constructor. /// - public TTagHelper CreateTagHelper() where TTagHelper : ITagHelper + public TTagHelper CreateTagHelper() where TTagHelper : ITagHelper, new() { - var tagHelper = TypeActivator.CreateInstance(ViewContext.HttpContext.RequestServices); + var tagHelper = new TTagHelper(); TagHelperActivator.Activate(tagHelper, ViewContext); diff --git a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageCreateTagHelperTest.cs b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageCreateTagHelperTest.cs index d99b619f8b..fa608d20cd 100644 --- a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageCreateTagHelperTest.cs +++ b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageCreateTagHelperTest.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Globalization; using System.IO; using System.Threading.Tasks; using Microsoft.AspNet.Http; @@ -31,45 +32,18 @@ namespace Microsoft.AspNet.Mvc.Razor } [Fact] - public void CreateTagHelper_ActivatesProvidedTagHelperType_Constructor() + public void CreateTagHelper_ActivatesProvidedTagHelperType() { // Arrange var instance = CreateTestRazorPage(); // Act - var tagHelper = instance.CreateTagHelper(); - - // Assert - Assert.NotNull(tagHelper.PassedInService); - } - - [Fact] - public void CreateTagHelper_ActivatesProvidedTagHelperType_Property() - { - // Arrange - var instance = CreateTestRazorPage(); - - // Act - var tagHelper = instance.CreateTagHelper(); + var tagHelper = instance.CreateTagHelper(); // Assert Assert.NotNull(tagHelper.ActivatedService); } - [Fact] - public void CreateTagHelper_ActivatesProvidedTagHelperType_PropertyAndConstructor() - { - // Arrange - var instance = CreateTestRazorPage(); - - // Act - var tagHelper = instance.CreateTagHelper(); - - // Assert - Assert.NotNull(tagHelper.ActivatedService); - Assert.NotNull(tagHelper.PassedInService); - } - [Fact] public void CreateTagHelper_ProvidesTagHelperTypeWithViewContext() { @@ -94,7 +68,7 @@ namespace Microsoft.AspNet.Mvc.Razor // Assert Assert.NotNull(tagHelper.ViewContext); - Assert.NotNull(tagHelper.PassedInService); + Assert.NotNull(tagHelper.ActivatedService); } private static TestRazorPage CreateTestRazorPage() @@ -138,35 +112,12 @@ namespace Microsoft.AspNet.Mvc.Razor { } - private class ConstructorServiceTagHelper : TagHelper - { - public MyService PassedInService { get; set; } - - public ConstructorServiceTagHelper(MyService service) - { - PassedInService = service; - } - } - - private class ActivateAttributeServiceTagHelper : TagHelper + private class ServiceTagHelper : TagHelper { [Activate] public MyService ActivatedService { get; set; } } - private class AttributeConstructorServiceTagHelper : TagHelper - { - [Activate] - public MyService ActivatedService { get; set; } - - public MyService PassedInService { get; set; } - - public AttributeConstructorServiceTagHelper(MyService service) - { - PassedInService = service; - } - } - private class ViewContextTagHelper : TagHelper { [Activate] @@ -175,12 +126,8 @@ namespace Microsoft.AspNet.Mvc.Razor private class ViewContextServiceTagHelper : ViewContextTagHelper { - public MyService PassedInService { get; set; } - - public ViewContextServiceTagHelper(MyService service) - { - PassedInService = service; - } + [Activate] + public MyService ActivatedService { get; set; } } private class MyService