Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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
- CompositeFontFamily.cs
- DynamicValueConverter.cs
- SqlDataSourceRefreshSchemaForm.cs
- StateManagedCollection.cs
- Classification.cs
- newinstructionaction.cs
- WizardSideBarListControlItemEventArgs.cs
- XPathDocumentIterator.cs
- KnownTypes.cs
- Int16Storage.cs
- CryptoApi.cs
- BackStopAuthenticationModule.cs
- Localizer.cs
- Monitor.cs
- ListBoxDesigner.cs
- FileDialogPermission.cs
- DataGridViewRowEventArgs.cs
- EventMetadata.cs
- XmlObjectSerializerReadContextComplexJson.cs
- RegexCharClass.cs
- RootBuilder.cs
- HttpMethodAttribute.cs
- ExpressionBuilder.cs
- WsdlBuildProvider.cs
- TargetConverter.cs
- PartitionedStream.cs
- DeferredSelectedIndexReference.cs
- KeyValuePairs.cs
- RootProfilePropertySettingsCollection.cs
- IntegerFacetDescriptionElement.cs
- Operand.cs
- PagedDataSource.cs
- WorkflowPersistenceService.cs
- Image.cs
- DataError.cs
- TextParagraphCache.cs
- ADRoleFactoryConfiguration.cs
- SqlResolver.cs
- MultiDataTrigger.cs
- JournalEntry.cs
- httpstaticobjectscollection.cs
- Line.cs
- ColumnCollection.cs
- HtmlInputButton.cs
- PasswordPropertyTextAttribute.cs
- BitmapPalettes.cs
- GlyphRunDrawing.cs
- ContractType.cs
- EntitySqlQueryCacheKey.cs
- SyntaxCheck.cs
- basecomparevalidator.cs
- PrimitiveSchema.cs
- WindowInteractionStateTracker.cs
- Currency.cs
- PartialCachingAttribute.cs
- ActivityExecutorOperation.cs
- EntityAdapter.cs
- RuleSetDialog.Designer.cs
- ZeroOpNode.cs
- DataRowView.cs
- TransformDescriptor.cs
- EnumValAlphaComparer.cs
- Typeface.cs
- ExclusiveCanonicalizationTransform.cs
- ToolBar.cs
- NavigateEvent.cs
- PlanCompilerUtil.cs
- WebPartAuthorizationEventArgs.cs
- EmissiveMaterial.cs
- RemotingException.cs
- PageHandlerFactory.cs
- ToolStripEditorManager.cs
- SessionEndingEventArgs.cs
- AstTree.cs
- ParameterElement.cs
- DocumentViewerConstants.cs
- XmlnsCache.cs
- DbProviderFactory.cs
- AttributeCallbackBuilder.cs
- SqlRowUpdatingEvent.cs
- DrawingBrush.cs
- DataServiceHostWrapper.cs
- NoClickablePointException.cs
- DataGridRowHeader.cs
- InvalidOleVariantTypeException.cs
- ImageCodecInfo.cs
- DynamicQueryStringParameter.cs
- KnownBoxes.cs
- loginstatus.cs
- GeometryGroup.cs
- UIElementCollection.cs
- RouteItem.cs
- DataGridViewColumnEventArgs.cs
- ColumnWidthChangedEvent.cs
- GC.cs
- ClientBuildManagerCallback.cs
- WindowsGraphicsWrapper.cs
- Compress.cs
- SchemaNames.cs
- XmlSchemaDocumentation.cs