// 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.Text.Encodings.Web; using Microsoft.AspNet.Mvc.ViewEngines; namespace Microsoft.AspNet.Mvc.Razor { /// /// Represents the default implementation that creates /// instances with a given . /// public class RazorViewFactory : IRazorViewFactory { private readonly HtmlEncoder _htmlEncoder; private readonly IRazorPageActivator _pageActivator; private readonly IViewStartProvider _viewStartProvider; /// /// Initializes a new instance of RazorViewFactory /// /// The used to activate pages. /// The used for discovery of _ViewStart /// pages public RazorViewFactory( IRazorPageActivator pageActivator, IViewStartProvider viewStartProvider, HtmlEncoder htmlEncoder) { _pageActivator = pageActivator; _viewStartProvider = viewStartProvider; _htmlEncoder = htmlEncoder; } /// public IView GetView( IRazorViewEngine viewEngine, IRazorPage page, bool isPartial) { if (viewEngine == null) { throw new ArgumentNullException(nameof(viewEngine)); } if (page == null) { throw new ArgumentNullException(nameof(page)); } var razorView = new RazorView( viewEngine, _pageActivator, _viewStartProvider, page, _htmlEncoder, isPartial); return razorView; } } }