Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Compilation / ApplicationBuildProvider.cs / 1305376 / ApplicationBuildProvider.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.IO; using System.Collections; using System.CodeDom.Compiler; using System.Web.Hosting; using System.Web.Util; using System.Web.UI; internal class ApplicationBuildProvider: BaseTemplateBuildProvider { internal static BuildResultCompiledGlobalAsaxType GetGlobalAsaxBuildResult(bool isPrecompiledApp) { string cacheKey = BuildManager.GlobalAsaxAssemblyName; // Try the cache first, and if it's not there, compile it BuildResultCompiledGlobalAsaxType result = BuildManager.GetBuildResultFromCache(cacheKey) as BuildResultCompiledGlobalAsaxType; if (result != null) return result; // If this is a precompiled app don't attempt to compile it if (isPrecompiledApp) return null; VirtualPath virtualPath = BuildManager.GlobalAsaxVirtualPath; // If global.asax doesn't exist, just ignore it if (!virtualPath.FileExists()) return null; // Compile global.asax ApplicationBuildProvider buildProvider = new ApplicationBuildProvider(); buildProvider.SetVirtualPath(virtualPath); DateTime utcStart = DateTime.UtcNow; BuildProvidersCompiler bpc = new BuildProvidersCompiler(virtualPath /*configPath*/, BuildManager.GenerateRandomAssemblyName(BuildManager.GlobalAsaxAssemblyName)); // Set the BuildProvider using a single item collection bpc.SetBuildProviders(new SingleObjectCollection(buildProvider)); CompilerResults results = bpc.PerformBuild(); result = (BuildResultCompiledGlobalAsaxType) buildProvider.GetBuildResult(results); // Top level assembliy should not be cached to memory. result.CacheToMemory = false; // Cache it for next time BuildManager.CacheBuildResult(cacheKey, result, utcStart); // Return the compiled type return result; } protected override TemplateParser CreateParser() { return new ApplicationFileParser(); } internal override BaseCodeDomTreeGenerator CreateCodeDomTreeGenerator(TemplateParser parser) { return new ApplicationFileCodeDomTreeGenerator((ApplicationFileParser)parser); } internal override BuildResultCompiledType CreateBuildResult(Type t) { BuildResultCompiledGlobalAsaxType result = new BuildResultCompiledGlobalAsaxType(t); // If global.asax contains
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DocumentPageView.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- PartialToken.cs
- VisualStyleRenderer.cs
- GridItem.cs
- DateTimeUtil.cs
- TopClause.cs
- WebPageTraceListener.cs
- assertwrapper.cs
- DataControlLinkButton.cs
- XPathDocumentNavigator.cs
- SqlDataSourceStatusEventArgs.cs
- arabicshape.cs
- XMLDiffLoader.cs
- NameValuePair.cs
- EntryIndex.cs
- SystemFonts.cs
- CqlLexerHelpers.cs
- NamedPipeTransportElement.cs
- CompilerParameters.cs
- ZoneIdentityPermission.cs
- CurrentTimeZone.cs
- ZipIOExtraField.cs
- SpeakProgressEventArgs.cs
- UnmanagedMemoryStreamWrapper.cs
- X509Certificate.cs
- AttributeEmitter.cs
- StylusPlugInCollection.cs
- __FastResourceComparer.cs
- NamespaceEmitter.cs
- TrustManagerMoreInformation.cs
- CapiSafeHandles.cs
- RuleInfoComparer.cs
- CodeParameterDeclarationExpression.cs
- WebPartDescription.cs
- DesignerGenericWebPart.cs
- SymbolDocumentGenerator.cs
- Pens.cs
- StyleHelper.cs
- EmptyImpersonationContext.cs
- ErrorFormatterPage.cs
- ItemsControl.cs
- XmlAttributes.cs
- PageStatePersister.cs
- TickBar.cs
- CredentialCache.cs
- SocketCache.cs
- GridViewRow.cs
- PropertyNames.cs
- NavigationHelper.cs
- base64Transforms.cs
- ThemeDirectoryCompiler.cs
- TextTreeTextNode.cs
- XComponentModel.cs
- DataSourceCache.cs
- GroupQuery.cs
- ButtonChrome.cs
- FormViewUpdatedEventArgs.cs
- StickyNoteHelper.cs
- Int16AnimationUsingKeyFrames.cs
- FilterElement.cs
- XmlNavigatorFilter.cs
- ConsoleTraceListener.cs
- XmlTextReaderImpl.cs
- Publisher.cs
- ProcessModuleCollection.cs
- HttpModulesSection.cs
- PrintingPermission.cs
- XamlTemplateSerializer.cs
- XmlFormatExtensionAttribute.cs
- StringStorage.cs
- ConditionBrowserDialog.cs
- DependencyPropertyKind.cs
- BinaryCommonClasses.cs
- UIHelper.cs
- RuntimeHandles.cs
- SystemResourceKey.cs
- BindingContext.cs
- DBDataPermission.cs
- RelatedImageListAttribute.cs
- DataRecord.cs
- Ray3DHitTestResult.cs
- MILUtilities.cs
- ProviderConnectionPointCollection.cs
- MultilineStringConverter.cs
- NameTable.cs
- UniqueIdentifierService.cs
- RepeatButtonAutomationPeer.cs
- TextBoxBase.cs
- CaseInsensitiveComparer.cs
- SetStateEventArgs.cs
- InProcStateClientManager.cs
- CompareValidator.cs
- DataGridViewComboBoxCell.cs
- RunClient.cs
- FreezableOperations.cs
- EventLogPermissionEntryCollection.cs
- AnnotationDocumentPaginator.cs
- NavigationProperty.cs
- FormsAuthenticationUser.cs