Code:
/ 4.0 / 4.0 / untmp / 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
- AppDomainAttributes.cs
- ToolStripLocationCancelEventArgs.cs
- Query.cs
- ComponentConverter.cs
- TableDetailsRow.cs
- PasswordTextNavigator.cs
- GPRECT.cs
- UnicodeEncoding.cs
- elementinformation.cs
- updatecommandorderer.cs
- DeviceContext.cs
- InstanceKeyCompleteException.cs
- FlowPosition.cs
- SafeBitVector32.cs
- StickyNoteContentControl.cs
- HttpFileCollection.cs
- XhtmlTextWriter.cs
- FileSecurity.cs
- UmAlQuraCalendar.cs
- EmptyQuery.cs
- QuaternionAnimationBase.cs
- Table.cs
- TextBounds.cs
- XmlTextReaderImpl.cs
- TransformPattern.cs
- DashStyle.cs
- ServiceModelConfiguration.cs
- RepeaterItemEventArgs.cs
- CngKey.cs
- odbcmetadatacollectionnames.cs
- ScrollChrome.cs
- XamlVector3DCollectionSerializer.cs
- SupportedAddressingMode.cs
- WebPartZone.cs
- ZipIOExtraField.cs
- FreezableDefaultValueFactory.cs
- TextRangeSerialization.cs
- WebPartTransformer.cs
- DataBinder.cs
- DeadCharTextComposition.cs
- StdValidatorsAndConverters.cs
- ScriptManagerProxy.cs
- ClientBuildManagerCallback.cs
- TextFormatterImp.cs
- ProjectionPlan.cs
- SqlIdentifier.cs
- DocumentXPathNavigator.cs
- ModelServiceImpl.cs
- OleAutBinder.cs
- MsmqIntegrationElement.cs
- ItemContainerProviderWrapper.cs
- XmlRootAttribute.cs
- SqlInternalConnectionSmi.cs
- CryptoKeySecurity.cs
- hebrewshape.cs
- ManagementBaseObject.cs
- ChangeBlockUndoRecord.cs
- GridProviderWrapper.cs
- MessageLoggingElement.cs
- SafeRightsManagementQueryHandle.cs
- ClientRoleProvider.cs
- PrefixQName.cs
- HtmlDocument.cs
- InkCanvasSelection.cs
- SqlConnectionPoolProviderInfo.cs
- WebProxyScriptElement.cs
- DispatchRuntime.cs
- Completion.cs
- DataGridViewColumnEventArgs.cs
- DropDownList.cs
- SecureStringHasher.cs
- JsonObjectDataContract.cs
- handlecollector.cs
- SqlMetaData.cs
- COAUTHINFO.cs
- EntityDataSourceDesigner.cs
- TextDecorations.cs
- LineUtil.cs
- ConversionContext.cs
- LogStore.cs
- ComboBox.cs
- GridView.cs
- SchemaRegistration.cs
- SecurityException.cs
- DeriveBytes.cs
- UIntPtr.cs
- BindingNavigator.cs
- MemoryPressure.cs
- SByte.cs
- ValidationContext.cs
- LazyLoadBehavior.cs
- OleDbFactory.cs
- XmlSchemaInferenceException.cs
- QueryComponents.cs
- InheritanceContextChangedEventManager.cs
- InstanceKeyNotReadyException.cs
- TextPattern.cs
- MultipartIdentifier.cs
- ModuleConfigurationInfo.cs
- SiteMap.cs