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
- ConfigXmlCDataSection.cs
- SqlConnectionManager.cs
- RawUIStateInputReport.cs
- ExtensionDataReader.cs
- XmlValidatingReader.cs
- HighlightOverlayGlyph.cs
- SessionStateSection.cs
- SqlTypesSchemaImporter.cs
- AppSettings.cs
- MailDefinition.cs
- SizeConverter.cs
- FixedSOMElement.cs
- GroupItemAutomationPeer.cs
- WebPartMenuStyle.cs
- StrokeCollectionConverter.cs
- BinaryParser.cs
- XmlDictionaryWriter.cs
- PropertyItem.cs
- MetaData.cs
- TextEncodedRawTextWriter.cs
- ResourceSet.cs
- SqlFacetAttribute.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- MetadataProperty.cs
- HttpStreamMessageEncoderFactory.cs
- EdmFunction.cs
- VBIdentifierTrimConverter.cs
- SqlConnectionStringBuilder.cs
- SqlMetaData.cs
- UIPermission.cs
- DataObjectMethodAttribute.cs
- QilStrConcatenator.cs
- keycontainerpermission.cs
- SqlBuffer.cs
- HtmlInputCheckBox.cs
- CodeBlockBuilder.cs
- DocumentXPathNavigator.cs
- SqlMethodAttribute.cs
- BrowserInteropHelper.cs
- Request.cs
- Size3D.cs
- UriTemplateTrieLocation.cs
- SafeHandles.cs
- SizeKeyFrameCollection.cs
- FreezableCollection.cs
- MembershipPasswordException.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- SqlInternalConnectionTds.cs
- MouseWheelEventArgs.cs
- RequestContextBase.cs
- DataSourceXmlTextReader.cs
- Monitor.cs
- GridItemPattern.cs
- TrackingServices.cs
- IListConverters.cs
- Attributes.cs
- xamlnodes.cs
- _ConnectStream.cs
- CodeExporter.cs
- DataGridViewRowHeaderCell.cs
- StylusPointDescription.cs
- PipelineModuleStepContainer.cs
- WindowsSysHeader.cs
- MultilineStringConverter.cs
- LessThanOrEqual.cs
- PriorityQueue.cs
- SourceFileBuildProvider.cs
- DispatcherExceptionFilterEventArgs.cs
- PathNode.cs
- ExpressionHelper.cs
- TrackBar.cs
- HtmlTextArea.cs
- WSDualHttpBindingElement.cs
- MemoryFailPoint.cs
- FirstMatchCodeGroup.cs
- InvalidProgramException.cs
- WebBodyFormatMessageProperty.cs
- SqlDataRecord.cs
- XmlILAnnotation.cs
- MouseGestureValueSerializer.cs
- FolderLevelBuildProvider.cs
- ConfigurationSectionGroup.cs
- WindowsAltTab.cs
- UTF8Encoding.cs
- MouseDevice.cs
- BamlTreeNode.cs
- HttpGetClientProtocol.cs
- XPSSignatureDefinition.cs
- Screen.cs
- ListViewUpdatedEventArgs.cs
- DragStartedEventArgs.cs
- BaseCollection.cs
- ContainerActivationHelper.cs
- WebScriptServiceHostFactory.cs
- GridView.cs
- TabletCollection.cs
- XmlILModule.cs
- XmlSchemaSequence.cs
- dataprotectionpermission.cs
- AvTraceDetails.cs