Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- NavigationWindowAutomationPeer.cs
- GraphicsPath.cs
- XmlComplianceUtil.cs
- CopyOfAction.cs
- Figure.cs
- FrameSecurityDescriptor.cs
- SafeNativeMethods.cs
- EventMappingSettings.cs
- SuppressMessageAttribute.cs
- PropertyItem.cs
- UICuesEvent.cs
- HandlerFactoryCache.cs
- BreakSafeBase.cs
- BoundPropertyEntry.cs
- Parameter.cs
- MultiPageTextView.cs
- MouseGestureValueSerializer.cs
- DataBoundLiteralControl.cs
- RuntimeResourceSet.cs
- ContractTypeNameElement.cs
- ScrollBarAutomationPeer.cs
- CodePropertyReferenceExpression.cs
- Transform.cs
- ResourceWriter.cs
- TextBoxAutomationPeer.cs
- DoubleLinkListEnumerator.cs
- Metafile.cs
- Path.cs
- RuleInfoComparer.cs
- XmlDocumentFragment.cs
- PersonalizationProviderCollection.cs
- isolationinterop.cs
- XmlAttributeCollection.cs
- autovalidator.cs
- DynamicControlParameter.cs
- Stylesheet.cs
- PropertyInformationCollection.cs
- SerializableAttribute.cs
- ImpersonateTokenRef.cs
- XmlQuerySequence.cs
- XmlSchemaElement.cs
- WebPartsSection.cs
- CommandPlan.cs
- AccessibleObject.cs
- ListViewCancelEventArgs.cs
- SkinIDTypeConverter.cs
- ForeignKeyConstraint.cs
- UserInitiatedNavigationPermission.cs
- SByte.cs
- RegexCaptureCollection.cs
- AuthenticationService.cs
- AspNetHostingPermission.cs
- UIAgentMonitor.cs
- MetadataCache.cs
- __ConsoleStream.cs
- EventProxy.cs
- BuildManagerHost.cs
- SafeMarshalContext.cs
- InstanceLockQueryResult.cs
- Stack.cs
- OleAutBinder.cs
- KeyedByTypeCollection.cs
- exports.cs
- StylusPlugin.cs
- MenuCommand.cs
- ActivityExecutorOperation.cs
- ProcessManager.cs
- QueryCacheManager.cs
- HttpHeaderCollection.cs
- ContractUtils.cs
- RepeaterItem.cs
- TextEditorDragDrop.cs
- InfoCardKeyedHashAlgorithm.cs
- PropertyTabAttribute.cs
- XmlQueryStaticData.cs
- RangeValuePattern.cs
- DeferredRunTextReference.cs
- CodeAccessSecurityEngine.cs
- DataGridRelationshipRow.cs
- recordstatefactory.cs
- ACE.cs
- Exceptions.cs
- DataSourceUtil.cs
- ShellProvider.cs
- RegexMatchCollection.cs
- GenericAuthenticationEventArgs.cs
- Invariant.cs
- PropertyDescriptorCollection.cs
- PlatformNotSupportedException.cs
- LocalBuilder.cs
- WebPartEditorApplyVerb.cs
- OrderToken.cs
- CellLabel.cs
- TextProviderWrapper.cs
- ResolvedKeyFrameEntry.cs
- ExeConfigurationFileMap.cs
- LinkArea.cs
- Function.cs
- UseLicense.cs
- ProfileParameter.cs