Code:
/ FX-1434 / FX-1434 / 1.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
- AccessibleObject.cs
- UpdateCompiler.cs
- NotifyParentPropertyAttribute.cs
- DBParameter.cs
- FilterUserControlBase.cs
- Directory.cs
- CacheMemory.cs
- XslTransform.cs
- DrawingContextDrawingContextWalker.cs
- ScheduleChanges.cs
- FontDialog.cs
- TypedAsyncResult.cs
- SessionEndingEventArgs.cs
- SpellerError.cs
- GridViewUpdateEventArgs.cs
- CodeDirectoryCompiler.cs
- TypeToken.cs
- Quaternion.cs
- EntityDataSourceDataSelection.cs
- IRCollection.cs
- designeractionbehavior.cs
- PasswordPropertyTextAttribute.cs
- ThrowHelper.cs
- ExpressionVisitor.cs
- CmsInterop.cs
- IPAddressCollection.cs
- DataContractSerializerElement.cs
- DataSourceConverter.cs
- ButtonFieldBase.cs
- MouseGesture.cs
- XslCompiledTransform.cs
- RemotingException.cs
- NegatedCellConstant.cs
- ContravarianceAdapter.cs
- TableDetailsCollection.cs
- SystemIcons.cs
- ServiceNameElementCollection.cs
- CodeCatchClauseCollection.cs
- BitmapScalingModeValidation.cs
- MessageQueueException.cs
- ContextMenuStripGroupCollection.cs
- SystemResources.cs
- AttributeQuery.cs
- XamlFigureLengthSerializer.cs
- TypeExtensions.cs
- FileEnumerator.cs
- SafeProcessHandle.cs
- Parallel.cs
- CqlParserHelpers.cs
- XmlMapping.cs
- ConnectionProviderAttribute.cs
- ManagementEventWatcher.cs
- InvalidOleVariantTypeException.cs
- ControlValuePropertyAttribute.cs
- MDIClient.cs
- ForeignConstraint.cs
- ProvidersHelper.cs
- FontStretches.cs
- TraceListeners.cs
- ReceiveSecurityHeaderElementManager.cs
- CompilationUtil.cs
- ComponentChangingEvent.cs
- CrossSiteScriptingValidation.cs
- IImplicitResourceProvider.cs
- TextViewBase.cs
- WindowsUpDown.cs
- UInt64Storage.cs
- Privilege.cs
- MappingException.cs
- HtmlInputPassword.cs
- MULTI_QI.cs
- CompositeCollection.cs
- OrderByBuilder.cs
- InternalSafeNativeMethods.cs
- ImageIndexConverter.cs
- WindowsClaimSet.cs
- EqualityComparer.cs
- AsyncResult.cs
- ACE.cs
- CultureTableRecord.cs
- CaseStatement.cs
- InternalConfigHost.cs
- RoutedEvent.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- DoubleCollectionValueSerializer.cs
- HashUtility.cs
- WebHttpBehavior.cs
- SqlReorderer.cs
- CommandDevice.cs
- ExportException.cs
- Path.cs
- WindowsPrincipal.cs
- DataBinding.cs
- ByteAnimationBase.cs
- StylusLogic.cs
- MouseButtonEventArgs.cs
- Variable.cs
- VirtualizingStackPanel.cs
- StorageRoot.cs
- StringDictionary.cs