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
- PointConverter.cs
- WebConfigurationHost.cs
- SimpleApplicationHost.cs
- ConditionalAttribute.cs
- SqlDataSourceStatusEventArgs.cs
- UIServiceHelper.cs
- AttachedPropertyInfo.cs
- DependencyObjectProvider.cs
- CompilationSection.cs
- IdentityModelStringsVersion1.cs
- MenuItem.cs
- SafeFileMappingHandle.cs
- WhitespaceRuleLookup.cs
- ResourceExpressionBuilder.cs
- figurelengthconverter.cs
- CustomLineCap.cs
- PropertyGeneratedEventArgs.cs
- AnimationException.cs
- InstanceCompleteException.cs
- OpenTypeCommon.cs
- IPAddressCollection.cs
- DebugControllerThread.cs
- PlanCompilerUtil.cs
- OptimizerPatterns.cs
- TextPenaltyModule.cs
- PageStatePersister.cs
- RegexEditorDialog.cs
- AssemblyHash.cs
- AnnotationResource.cs
- LinqDataSourceHelper.cs
- PackageRelationshipCollection.cs
- HotCommands.cs
- Font.cs
- HtmlElementCollection.cs
- RichTextBoxConstants.cs
- ScrollBar.cs
- SingleAnimationUsingKeyFrames.cs
- RegionIterator.cs
- XmlHelper.cs
- OutputCacheEntry.cs
- WindowsSolidBrush.cs
- SqlDataSourceCommandEventArgs.cs
- ProbeDuplexAsyncResult.cs
- CompleteWizardStep.cs
- ConnectionProviderAttribute.cs
- InputQueueChannel.cs
- PersonalizationProviderHelper.cs
- GraphicsPathIterator.cs
- DrawingServices.cs
- MsmqOutputSessionChannel.cs
- ColumnHeader.cs
- ProfileProvider.cs
- HealthMonitoringSectionHelper.cs
- _HeaderInfo.cs
- NeutralResourcesLanguageAttribute.cs
- DetailsViewRow.cs
- ApplyTemplatesAction.cs
- LineServicesRun.cs
- StateInitialization.cs
- ListControlStringCollectionEditor.cs
- Memoizer.cs
- DurationConverter.cs
- ObjectViewQueryResultData.cs
- SecurityTokenResolver.cs
- PanelDesigner.cs
- ParseNumbers.cs
- DbExpressionVisitor_TResultType.cs
- XmlSchemaExporter.cs
- TablePatternIdentifiers.cs
- MemberPath.cs
- PolyLineSegment.cs
- EventLog.cs
- NumberFunctions.cs
- PackageDigitalSignature.cs
- CallContext.cs
- SqlInternalConnectionTds.cs
- ServiceThrottlingElement.cs
- PolyBezierSegment.cs
- StringOutput.cs
- RequestUriProcessor.cs
- CredentialCache.cs
- _BaseOverlappedAsyncResult.cs
- VirtualPathData.cs
- Point3DKeyFrameCollection.cs
- UnsafeNativeMethods.cs
- PostBackOptions.cs
- ConvertersCollection.cs
- GroupQuery.cs
- ColumnMapVisitor.cs
- AuthenticationModulesSection.cs
- ToolStripRendererSwitcher.cs
- PageCache.cs
- SkewTransform.cs
- ContextProperty.cs
- ServiceOperationParameter.cs
- COAUTHINFO.cs
- ApplicationId.cs
- RecoverInstanceLocksCommand.cs
- SafeLocalAllocation.cs
- ModuleBuilderData.cs