protected override void InitializeParameters() { WebPageBase razorPage = null; try { using (BuildManagerHelper.DisableUrlMetadataCachingScope()) { razorPage = WebPage.CreateInstanceFromVirtualPath(VirtualPath); } var razorFunction = razorPage as RazorFunction; if (razorFunction == null) { throw new InvalidOperationException($"Failed to initialize function from cache. Path: '{VirtualPath}'"); } Parameters = FunctionBasedFunctionProviderHelper.GetParameters(razorFunction, typeof(RazorFunction), VirtualPath); PreventFunctionOutputCaching = razorFunction.PreventFunctionOutputCaching; } finally { (razorPage as IDisposable)?.Dispose(); } }
protected override IFunction InstantiateFunction(string virtualPath, string @namespace, string name) { WebPageBase razorPage; using (BuildManagerHelper.DisableUrlMetadataCachingScope()) { razorPage = WebPage.CreateInstanceFromVirtualPath(virtualPath); } if (!(razorPage is RazorFunction razorFunction)) { Log.LogWarning(nameof(RazorFunctionProvider), $"Razor page '{virtualPath}' does not inherit from the base class for razor functions '{typeof(RazorFunction).FullName}' and will be ignored"); return(null); } try { var functionParameters = FunctionBasedFunctionProviderHelper.GetParameters( razorFunction, typeof(RazorFunction), virtualPath); return(new RazorBasedFunction(@namespace, name, razorFunction.FunctionDescription, functionParameters, razorFunction.FunctionReturnType, virtualPath, this)); } finally { razorFunction.Dispose(); } }
protected override void InitializeParameters() { UserControl userControl = UserControlFunctionProvider.CompileFile(VirtualPath); Verify.IsNotNull(userControl, "Failed to get UserControl from '{0}'", VirtualPath); Type baseControlType = userControl is UserControlFunction ? typeof(UserControlFunction) : typeof(UserControl); Parameters = FunctionBasedFunctionProviderHelper.GetParameters(userControl, baseControlType, PathUtil.Resolve(VirtualPath)); }
protected override void InitializeParameters() { WebPageBase razorPage; using (BuildManagerHelper.DisableUrlMetadataCachingScope()) { razorPage = WebPage.CreateInstanceFromVirtualPath(VirtualPath); } if (!(razorPage is RazorFunction)) { throw new InvalidOperationException("Failed to initialize function from cache. Path: '{0}'".FormatWith(VirtualPath)); } Parameters = FunctionBasedFunctionProviderHelper.GetParameters(razorPage as RazorFunction, typeof(RazorFunction), VirtualPath); }
protected override IFunction InstantiateFunction(string virtualPath, string @namespace, string name) { UserControl userControl = CompileFile(virtualPath); if (!(userControl is UserControl)) { return(null); } Type baseControlType = userControl is UserControlFunction ? typeof(UserControlFunction) : typeof(UserControl); string description = userControl is UserControlFunction ? (userControl as UserControlFunction).FunctionDescription : ""; var parameters = FunctionBasedFunctionProviderHelper.GetParameters(userControl, baseControlType, virtualPath); return(new UserControlBasedFunction(@namespace, name, description, parameters, typeof(UserControl), virtualPath, this)); }