Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Compilation / ApplicationBuildProvider.cs / 1 / 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
- SystemIcmpV4Statistics.cs
- TreeViewDesigner.cs
- MetadataCacheItem.cs
- WinFormsComponentEditor.cs
- SafeThreadHandle.cs
- TraceContextEventArgs.cs
- DataException.cs
- XmlWriterTraceListener.cs
- Point3DAnimationUsingKeyFrames.cs
- MediaContextNotificationWindow.cs
- UnsafeNativeMethods.cs
- AppDomain.cs
- SHA384.cs
- ProfileInfo.cs
- IgnoreSectionHandler.cs
- WebPartMenu.cs
- EntityViewContainer.cs
- PartialList.cs
- ReceiveActivityValidator.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- ApplicationCommands.cs
- ValueQuery.cs
- TemplateParser.cs
- RotateTransform3D.cs
- OciLobLocator.cs
- CodeArrayIndexerExpression.cs
- RootBrowserWindow.cs
- DocumentXmlWriter.cs
- RequestQueryProcessor.cs
- ByteStack.cs
- CodeSubDirectory.cs
- TraceUtils.cs
- LineBreakRecord.cs
- GlobalAclOperationRequirement.cs
- ToolStripOverflowButton.cs
- CreateUserWizard.cs
- Point3DAnimationUsingKeyFrames.cs
- HttpChannelBindingToken.cs
- SystemNetHelpers.cs
- FontEmbeddingManager.cs
- Lookup.cs
- DateTimeConverter.cs
- LinkLabelLinkClickedEvent.cs
- CircleHotSpot.cs
- Char.cs
- EditingScope.cs
- SelectedDatesCollection.cs
- TextTreeUndo.cs
- PrinterUnitConvert.cs
- RtfControls.cs
- MetadataItem.cs
- CharAnimationUsingKeyFrames.cs
- SessionStateUtil.cs
- SQLChars.cs
- ListInitExpression.cs
- SystemException.cs
- SmiXetterAccessMap.cs
- SelectionRangeConverter.cs
- InputBinder.cs
- ScriptingRoleServiceSection.cs
- DeviceContext.cs
- XmlSerializationGeneratedCode.cs
- HttpListenerContext.cs
- UnsupportedPolicyOptionsException.cs
- SQLByteStorage.cs
- DataServiceQuery.cs
- ConfigurationCollectionAttribute.cs
- CorrelationKey.cs
- JavaScriptSerializer.cs
- AdapterSwitches.cs
- ColumnWidthChangedEvent.cs
- ListViewUpdatedEventArgs.cs
- ToolStrip.cs
- XmlSchemaCompilationSettings.cs
- x509utils.cs
- Brushes.cs
- XmlNamespaceManager.cs
- SmtpNetworkElement.cs
- ObjectFullSpanRewriter.cs
- TextTreeExtractElementUndoUnit.cs
- BuiltInPermissionSets.cs
- TraceSection.cs
- MatrixAnimationUsingKeyFrames.cs
- StreamGeometryContext.cs
- UITypeEditor.cs
- ImageField.cs
- SettingsSection.cs
- ArrowControl.xaml.cs
- SQLBytesStorage.cs
- TableRowCollection.cs
- CachedPathData.cs
- ProxyManager.cs
- XmlIncludeAttribute.cs
- DataGridViewBindingCompleteEventArgs.cs
- WindowsListViewItem.cs
- WebConvert.cs
- XmlArrayAttribute.cs
- SQLMoneyStorage.cs
- MarkupObject.cs
- InvariantComparer.cs