Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Compilation / PageThemeBuildProvider.cs / 1305376 / PageThemeBuildProvider.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Web.Hosting; using System.Web.UI; using System.Web.Util; internal class PageThemeBuildProvider: BaseTemplateBuildProvider { private VirtualPath _virtualDirPath; private IList _skinFileList; private ArrayList _cssFileList; internal PageThemeBuildProvider(VirtualPath virtualDirPath) { _virtualDirPath = virtualDirPath; // SetVirtualPath(virtualDirPath); } internal virtual String AssemblyNamePrefix { get { return BuildManager.AppThemeAssemblyNamePrefix; } } internal void AddSkinFile(VirtualPath virtualPath) { if (_skinFileList == null) _skinFileList = new StringCollection(); _skinFileList.Add(virtualPath.VirtualPathString); } internal void AddCssFile(VirtualPath virtualPath) { if (_cssFileList == null) _cssFileList = new ArrayList(); _cssFileList.Add(virtualPath.AppRelativeVirtualPathString); } protected override TemplateParser CreateParser() { if (_cssFileList != null) { _cssFileList.Sort(); } return new PageThemeParser(_virtualDirPath, _skinFileList, _cssFileList); } internal override BaseCodeDomTreeGenerator CreateCodeDomTreeGenerator(TemplateParser parser) { return new PageThemeCodeDomTreeGenerator((PageThemeParser)parser); } } internal class GlobalPageThemeBuildProvider : PageThemeBuildProvider { private VirtualPath _virtualDirPath; internal GlobalPageThemeBuildProvider(VirtualPath virtualDirPath) : base (virtualDirPath) { _virtualDirPath = virtualDirPath; } internal override String AssemblyNamePrefix { get { return BuildManager.GlobalThemeAssemblyNamePrefix; } } public override ICollection VirtualPathDependencies { get { ICollection parentDependencies = base.VirtualPathDependencies; string themeName = _virtualDirPath.FileName; // Here we add the app theme dir to the dependency list so that global theme will be invalidated // from cache when app theme is added. CaseInsensitiveStringSet sourceDependencies = new CaseInsensitiveStringSet(); sourceDependencies.AddCollection(parentDependencies); string appThemesVdir = UrlPath.SimpleCombine(HttpRuntime.AppDomainAppVirtualPathString, HttpRuntime.ThemesDirectoryName); string appThemeVdir = appThemesVdir + '/' + themeName; if (HostingEnvironment.VirtualPathProvider.DirectoryExists(appThemeVdir)) { sourceDependencies.Add(appThemeVdir); } else { sourceDependencies.Add(appThemesVdir); } return sourceDependencies; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Compilation { using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Web.Hosting; using System.Web.UI; using System.Web.Util; internal class PageThemeBuildProvider: BaseTemplateBuildProvider { private VirtualPath _virtualDirPath; private IList _skinFileList; private ArrayList _cssFileList; internal PageThemeBuildProvider(VirtualPath virtualDirPath) { _virtualDirPath = virtualDirPath; // SetVirtualPath(virtualDirPath); } internal virtual String AssemblyNamePrefix { get { return BuildManager.AppThemeAssemblyNamePrefix; } } internal void AddSkinFile(VirtualPath virtualPath) { if (_skinFileList == null) _skinFileList = new StringCollection(); _skinFileList.Add(virtualPath.VirtualPathString); } internal void AddCssFile(VirtualPath virtualPath) { if (_cssFileList == null) _cssFileList = new ArrayList(); _cssFileList.Add(virtualPath.AppRelativeVirtualPathString); } protected override TemplateParser CreateParser() { if (_cssFileList != null) { _cssFileList.Sort(); } return new PageThemeParser(_virtualDirPath, _skinFileList, _cssFileList); } internal override BaseCodeDomTreeGenerator CreateCodeDomTreeGenerator(TemplateParser parser) { return new PageThemeCodeDomTreeGenerator((PageThemeParser)parser); } } internal class GlobalPageThemeBuildProvider : PageThemeBuildProvider { private VirtualPath _virtualDirPath; internal GlobalPageThemeBuildProvider(VirtualPath virtualDirPath) : base (virtualDirPath) { _virtualDirPath = virtualDirPath; } internal override String AssemblyNamePrefix { get { return BuildManager.GlobalThemeAssemblyNamePrefix; } } public override ICollection VirtualPathDependencies { get { ICollection parentDependencies = base.VirtualPathDependencies; string themeName = _virtualDirPath.FileName; // Here we add the app theme dir to the dependency list so that global theme will be invalidated // from cache when app theme is added. CaseInsensitiveStringSet sourceDependencies = new CaseInsensitiveStringSet(); sourceDependencies.AddCollection(parentDependencies); string appThemesVdir = UrlPath.SimpleCombine(HttpRuntime.AppDomainAppVirtualPathString, HttpRuntime.ThemesDirectoryName); string appThemeVdir = appThemesVdir + '/' + themeName; if (HostingEnvironment.VirtualPathProvider.DirectoryExists(appThemeVdir)) { sourceDependencies.Add(appThemeVdir); } else { sourceDependencies.Add(appThemesVdir); } return sourceDependencies; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripItemImageRenderEventArgs.cs
- DataGridViewControlCollection.cs
- PtsHelper.cs
- AutomationPatternInfo.cs
- DBNull.cs
- HostProtectionException.cs
- PreviewPageInfo.cs
- WebContext.cs
- HtmlCommandAdapter.cs
- PropertyValueUIItem.cs
- Mutex.cs
- TextViewSelectionProcessor.cs
- _SSPISessionCache.cs
- SelectionUIHandler.cs
- ThrowOnMultipleAssignment.cs
- RequiredFieldValidator.cs
- ParameterReplacerVisitor.cs
- DispatcherSynchronizationContext.cs
- EntityDesignerUtils.cs
- CoTaskMemUnicodeSafeHandle.cs
- InternalCache.cs
- SemaphoreFullException.cs
- DataGridViewColumn.cs
- TraceSection.cs
- HttpClientCertificate.cs
- XmlSchemaSimpleContentExtension.cs
- FontInfo.cs
- PasswordRecovery.cs
- DiscardableAttribute.cs
- ActivationServices.cs
- RotationValidation.cs
- WebDescriptionAttribute.cs
- IndentedWriter.cs
- ConfigXmlAttribute.cs
- odbcmetadatacollectionnames.cs
- PropagatorResult.cs
- ProcessProtocolHandler.cs
- JpegBitmapEncoder.cs
- securitycriticaldata.cs
- SendSecurityHeaderElementContainer.cs
- FixUp.cs
- DbLambda.cs
- SizeF.cs
- PrintPreviewControl.cs
- RegionData.cs
- NotSupportedException.cs
- CompositeControl.cs
- MgmtConfigurationRecord.cs
- Solver.cs
- HtmlProps.cs
- RenderDataDrawingContext.cs
- Vector.cs
- DataGridTextBox.cs
- XmlSerializableReader.cs
- DesignerDataStoredProcedure.cs
- HttpConfigurationSystem.cs
- AnimationLayer.cs
- ByteStreamMessageEncoder.cs
- TextTreeTextElementNode.cs
- StretchValidation.cs
- SQLBinaryStorage.cs
- AppModelKnownContentFactory.cs
- BitSet.cs
- DataGridViewCellValidatingEventArgs.cs
- PermissionSetEnumerator.cs
- AsyncPostBackErrorEventArgs.cs
- FileNotFoundException.cs
- HtmlHistory.cs
- UpdatePanelControlTrigger.cs
- GridEntryCollection.cs
- Base64Stream.cs
- XmlCharCheckingReader.cs
- IdentitySection.cs
- LassoSelectionBehavior.cs
- WpfPayload.cs
- ScrollContentPresenter.cs
- MimeObjectFactory.cs
- TemplateColumn.cs
- DiscardableAttribute.cs
- SqlUtil.cs
- X509DefaultServiceCertificateElement.cs
- SecurityTokenException.cs
- TypeInitializationException.cs
- BaseTypeViewSchema.cs
- DataProviderNameConverter.cs
- DocumentReference.cs
- IssuedSecurityTokenParameters.cs
- GradientSpreadMethodValidation.cs
- RightsManagementPermission.cs
- WorkflowDesignerColors.cs
- UrlPath.cs
- WebReferenceCollection.cs
- VirtualPathUtility.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- AsyncOperation.cs
- KeyEvent.cs
- UrlAuthorizationModule.cs
- QueryContinueDragEvent.cs
- SqlTrackingService.cs
- ObjectSet.cs