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
- XmlSchemaValidator.cs
- PerfCounterSection.cs
- PenLineJoinValidation.cs
- HttpTransportBindingElement.cs
- FilterableAttribute.cs
- ReachVisualSerializerAsync.cs
- SpotLight.cs
- LabelDesigner.cs
- GridViewCommandEventArgs.cs
- TextTreeRootTextBlock.cs
- WindowsListView.cs
- wgx_exports.cs
- CompilationUnit.cs
- VectorAnimation.cs
- MessagePropertyDescriptionCollection.cs
- TdsParserStaticMethods.cs
- RowToParametersTransformer.cs
- DesignDataSource.cs
- ImpersonationContext.cs
- MasterPageBuildProvider.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- DecimalAnimationUsingKeyFrames.cs
- DataControlFieldCell.cs
- OptimalBreakSession.cs
- NotifyInputEventArgs.cs
- MediaElementAutomationPeer.cs
- EntityDesignerUtils.cs
- DrawListViewColumnHeaderEventArgs.cs
- AlignmentYValidation.cs
- _AutoWebProxyScriptWrapper.cs
- LabelExpression.cs
- SamlSecurityTokenAuthenticator.cs
- SelectionProviderWrapper.cs
- ParsedAttributeCollection.cs
- SerializationAttributes.cs
- TypeSystem.cs
- WpfPayload.cs
- ProfileSettings.cs
- PropertyBuilder.cs
- Int32CAMarshaler.cs
- TransformValueSerializer.cs
- Transform3DCollection.cs
- VisualCollection.cs
- BlurBitmapEffect.cs
- basevalidator.cs
- SmtpCommands.cs
- TypeUsageBuilder.cs
- DataListItemEventArgs.cs
- BaseConfigurationRecord.cs
- VerificationException.cs
- OracleConnectionFactory.cs
- XPathNodeHelper.cs
- ImageIndexEditor.cs
- ProtocolsConfiguration.cs
- Math.cs
- ConfigurationSectionCollection.cs
- TreeNode.cs
- DictionaryContent.cs
- xmlglyphRunInfo.cs
- NullableIntMinMaxAggregationOperator.cs
- HttpConfigurationSystem.cs
- GC.cs
- WebRequestModuleElementCollection.cs
- StatementContext.cs
- TypeToken.cs
- NamedObject.cs
- DebugTrace.cs
- SpellerStatusTable.cs
- ReferenceService.cs
- DataControlHelper.cs
- SqlComparer.cs
- TableLayoutRowStyleCollection.cs
- EnumBuilder.cs
- RawStylusInput.cs
- PointAnimation.cs
- BaseUriHelper.cs
- XpsFilter.cs
- WindowsGraphicsCacheManager.cs
- ProcessHost.cs
- SrgsText.cs
- BuildProvider.cs
- DecoderBestFitFallback.cs
- DependencyProperty.cs
- XPathNavigatorKeyComparer.cs
- SelectedDatesCollection.cs
- Parameter.cs
- LinkConverter.cs
- KeyEventArgs.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ControlAdapter.cs
- SystemWebCachingSectionGroup.cs
- Group.cs
- SessionEndedEventArgs.cs
- ToolStripControlHost.cs
- ResourceExpressionBuilder.cs
- BodyGlyph.cs
- Int16.cs
- StringCollection.cs
- DuplicateWaitObjectException.cs
- DynamicQueryableWrapper.cs