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
- TcpClientCredentialType.cs
- DeclarativeCatalogPartDesigner.cs
- CompiledXpathExpr.cs
- OleDbException.cs
- TabRenderer.cs
- Transform3DCollection.cs
- DateTimePicker.cs
- Iis7Helper.cs
- RelationshipNavigation.cs
- StaticResourceExtension.cs
- Message.cs
- BatchStream.cs
- ClockGroup.cs
- clipboard.cs
- DiscoveryUtility.cs
- SafeNativeMethodsMilCoreApi.cs
- WorkerRequest.cs
- DefaultObjectMappingItemCollection.cs
- FacetValueContainer.cs
- PersonalizationProvider.cs
- DependencyPropertyChangedEventArgs.cs
- DataGridColumnEventArgs.cs
- XmlSchemaComplexContentExtension.cs
- QuaternionIndependentAnimationStorage.cs
- AssociationTypeEmitter.cs
- GrammarBuilderDictation.cs
- Vector3DAnimationBase.cs
- CodeRemoveEventStatement.cs
- ISO2022Encoding.cs
- EncryptedPackage.cs
- X509Utils.cs
- ConfigurationHelpers.cs
- LambdaCompiler.Address.cs
- LocalIdKeyIdentifierClause.cs
- OrderedDictionary.cs
- Assembly.cs
- DateTimeParse.cs
- DesignerView.cs
- VirtualPathUtility.cs
- MessageQueuePermissionEntryCollection.cs
- ButtonAutomationPeer.cs
- FormatterServicesNoSerializableCheck.cs
- GreenMethods.cs
- UserControl.cs
- ComponentDispatcher.cs
- Query.cs
- ActiveXHost.cs
- HttpDebugHandler.cs
- EncoderNLS.cs
- KeyValuePair.cs
- ToolStripDropTargetManager.cs
- XPathNode.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- TableRowGroup.cs
- BroadcastEventHelper.cs
- ScaleTransform.cs
- CacheEntry.cs
- BitmapEffectvisualstate.cs
- FormsAuthenticationUserCollection.cs
- GeneralTransformGroup.cs
- EntryIndex.cs
- UITypeEditor.cs
- DecoderFallback.cs
- ErrorEventArgs.cs
- TableAdapterManagerHelper.cs
- SmuggledIUnknown.cs
- WebPartActionVerb.cs
- SerializationStore.cs
- CacheSection.cs
- MultipleViewProviderWrapper.cs
- ExpressionDumper.cs
- ScriptIgnoreAttribute.cs
- RulePatternOps.cs
- COM2EnumConverter.cs
- VectorAnimation.cs
- SafeCancelMibChangeNotify.cs
- SqlNodeAnnotations.cs
- DefaultExpression.cs
- XmlAnyAttributeAttribute.cs
- XamlSerializerUtil.cs
- CodeMethodInvokeExpression.cs
- EdmValidator.cs
- MenuTracker.cs
- NetPipeSection.cs
- ToolStripLabel.cs
- StickyNoteAnnotations.cs
- DocumentSequence.cs
- MetadataCacheItem.cs
- Button.cs
- EventMemberCodeDomSerializer.cs
- WriteFileContext.cs
- MultiPageTextView.cs
- ResizeBehavior.cs
- Focus.cs
- SQLConvert.cs
- DbMetaDataFactory.cs
- SqlOuterApplyReducer.cs
- ItemCollection.cs
- CacheChildrenQuery.cs
- UserControlDocumentDesigner.cs