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
- QilTernary.cs
- XmlElementAttributes.cs
- EmptyEnumerator.cs
- SHA256.cs
- DependencyObjectCodeDomSerializer.cs
- SelectionRange.cs
- RetrieveVirtualItemEventArgs.cs
- StringExpressionSet.cs
- DataBindingHandlerAttribute.cs
- OdbcConnectionString.cs
- WindowsFont.cs
- DetailsView.cs
- BamlWriter.cs
- ManipulationPivot.cs
- XmlSubtreeReader.cs
- HashMembershipCondition.cs
- FontDriver.cs
- ToolStripTextBox.cs
- EnumMemberAttribute.cs
- View.cs
- PropertyTab.cs
- SequentialOutput.cs
- DataControlFieldCell.cs
- RowsCopiedEventArgs.cs
- EntityPropertyMappingAttribute.cs
- DataSvcMapFile.cs
- LocalClientSecuritySettings.cs
- ActivityExecutionFilter.cs
- PassportPrincipal.cs
- ScriptModule.cs
- oledbmetadatacollectionnames.cs
- ProfileParameter.cs
- PersonalizationProviderCollection.cs
- CharacterBuffer.cs
- HttpHandlersSection.cs
- SoundPlayer.cs
- TextDecorationLocationValidation.cs
- XamlWriter.cs
- AsymmetricAlgorithm.cs
- BitmapInitialize.cs
- Page.cs
- UserInitiatedNavigationPermission.cs
- MarginCollapsingState.cs
- DataServiceRequestArgs.cs
- TreeViewImageIndexConverter.cs
- MembershipPasswordException.cs
- GridView.cs
- Attributes.cs
- PartialTrustVisibleAssemblyCollection.cs
- Page.cs
- IEnumerable.cs
- SmiTypedGetterSetter.cs
- _ConnectOverlappedAsyncResult.cs
- ReadOnlyCollectionBase.cs
- ActivitiesCollection.cs
- EmissiveMaterial.cs
- UserValidatedEventArgs.cs
- HttpResponseWrapper.cs
- ListViewSortEventArgs.cs
- StructuredType.cs
- OracleBoolean.cs
- HwndHostAutomationPeer.cs
- InputGestureCollection.cs
- BinaryCommonClasses.cs
- FastPropertyAccessor.cs
- ConnectionPoint.cs
- DataRowExtensions.cs
- DesignTimeTemplateParser.cs
- InputChannelBinder.cs
- XsdValidatingReader.cs
- EasingFunctionBase.cs
- DataGridParentRows.cs
- XmlQueryTypeFactory.cs
- Control.cs
- PathNode.cs
- XmlSchemaGroupRef.cs
- TimeSpanValidator.cs
- PlatformCulture.cs
- errorpatternmatcher.cs
- DebuggerAttributes.cs
- JapaneseCalendar.cs
- BulletChrome.cs
- DataViewSettingCollection.cs
- DataGridViewTopRowAccessibleObject.cs
- DrawingVisualDrawingContext.cs
- CdpEqualityComparer.cs
- BaseTransportHeaders.cs
- WizardPanel.cs
- BufferedGraphicsManager.cs
- Deflater.cs
- DoubleAnimationUsingKeyFrames.cs
- CombinedGeometry.cs
- ArithmeticException.cs
- EnlistmentTraceIdentifier.cs
- NetworkCredential.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- JoinQueryOperator.cs
- FrameworkContentElement.cs
- CommentEmitter.cs
- SortedList.cs