diff --git a/src/Microsoft.AspNet.Mvc.Razor.Host/MvcRazorHost.cs b/src/Microsoft.AspNet.Mvc.Razor.Host/MvcRazorHost.cs
index 2278c4e941..2e7e797fd0 100644
--- a/src/Microsoft.AspNet.Mvc.Razor.Host/MvcRazorHost.cs
+++ b/src/Microsoft.AspNet.Mvc.Razor.Host/MvcRazorHost.cs
@@ -13,6 +13,7 @@ using Microsoft.AspNet.Razor.Chunks;
using Microsoft.AspNet.Razor.CodeGenerators;
using Microsoft.AspNet.Razor.Parser;
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
+using Microsoft.AspNet.Razor.TagHelpers;
using Microsoft.Framework.Internal;
namespace Microsoft.AspNet.Mvc.Razor
@@ -44,6 +45,7 @@ namespace Microsoft.AspNet.Mvc.Razor
private readonly IChunkTreeCache _chunkTreeCache;
private readonly RazorPathNormalizer _pathNormalizer;
private ChunkInheritanceUtility _chunkInheritanceUtility;
+ private ITagHelperDescriptorResolver _tagHelperDescriptorResolver;
internal MvcRazorHost(IChunkTreeCache chunkTreeCache, RazorPathNormalizer pathNormalizer)
: base(new CSharpRazorCodeLanguage())
@@ -52,7 +54,6 @@ namespace Microsoft.AspNet.Mvc.Razor
_baseType = BaseType;
_chunkTreeCache = chunkTreeCache;
- TagHelperDescriptorResolver = new TagHelperDescriptorResolver();
DefaultBaseClass = BaseType + "<" + DefaultModel + ">";
DefaultNamespace = "Asp";
// Enable instrumentation by default to allow precompiled views to work with BrowserLink.
@@ -132,6 +133,27 @@ namespace Microsoft.AspNet.Mvc.Razor
{
}
+ ///
+ public override ITagHelperDescriptorResolver TagHelperDescriptorResolver
+ {
+ get
+ {
+ // The initialization of the _tagHelperDescriptorResolver needs to be lazy to allow for the setting
+ // of DesignTimeMode.
+ if (_tagHelperDescriptorResolver == null)
+ {
+ _tagHelperDescriptorResolver = new TagHelperDescriptorResolver(DesignTimeMode);
+ }
+
+ return _tagHelperDescriptorResolver;
+ }
+ [param: NotNull]
+ set
+ {
+ _tagHelperDescriptorResolver = value;
+ }
+ }
+
///
/// Gets the model type used by default when no model is specified.
///
diff --git a/src/Microsoft.AspNet.Mvc.Razor/Precompilation/RazorPreCompiler.cs b/src/Microsoft.AspNet.Mvc.Razor/Precompilation/RazorPreCompiler.cs
index 9a0f0fc5b0..cb9c5dfef2 100644
--- a/src/Microsoft.AspNet.Mvc.Razor/Precompilation/RazorPreCompiler.cs
+++ b/src/Microsoft.AspNet.Mvc.Razor/Precompilation/RazorPreCompiler.cs
@@ -191,7 +191,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Precompilation
protected IMvcRazorHost GetRazorHost()
{
- var descriptorResolver = new TagHelperDescriptorResolver(TagHelperTypeResolver);
+ var descriptorResolver = new TagHelperDescriptorResolver(TagHelperTypeResolver, designTime: false);
return new MvcRazorHost(new DefaultChunkTreeCache(FileProvider))
{
TagHelperDescriptorResolver = descriptorResolver
diff --git a/test/Microsoft.AspNet.Mvc.Razor.Host.Test/MvcTagHelperAttributeValueCodeRendererTest.cs b/test/Microsoft.AspNet.Mvc.Razor.Host.Test/MvcTagHelperAttributeValueCodeRendererTest.cs
index 5dbf4ff1c5..0c245e7260 100644
--- a/test/Microsoft.AspNet.Mvc.Razor.Host.Test/MvcTagHelperAttributeValueCodeRendererTest.cs
+++ b/test/Microsoft.AspNet.Mvc.Razor.Host.Test/MvcTagHelperAttributeValueCodeRendererTest.cs
@@ -29,7 +29,8 @@ namespace Microsoft.AspNet.Mvc.Razor
name: "MyAttribute",
propertyName: "SomeProperty",
typeName: propertyType,
- isIndexer: false);
+ isIndexer: false,
+ usageDescriptor: null);
var writer = new CSharpCodeWriter();
var generatorContext = new ChunkGeneratorContext(
host: null,