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 / PageThemeBuildProvider.cs / 1 / 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
- LocatorBase.cs
- SoapHttpTransportImporter.cs
- BoundField.cs
- MailAddressCollection.cs
- FrameDimension.cs
- VariantWrapper.cs
- SqlDataSource.cs
- InsufficientMemoryException.cs
- FormViewActionList.cs
- CodeSpit.cs
- dbdatarecord.cs
- NGCSerializerAsync.cs
- RectValueSerializer.cs
- MaskedTextBox.cs
- securitycriticaldata.cs
- ProtectedConfigurationSection.cs
- CultureInfoConverter.cs
- Image.cs
- IBuiltInEvidence.cs
- BuilderPropertyEntry.cs
- MaskedTextBox.cs
- Item.cs
- Peer.cs
- PriorityBinding.cs
- RestHandler.cs
- UrlAuthFailureHandler.cs
- OleDbParameter.cs
- SecurityContext.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- CultureInfoConverter.cs
- _StreamFramer.cs
- KeyConverter.cs
- Literal.cs
- exports.cs
- ResourceManager.cs
- EventHandlersStore.cs
- DataGridViewCellPaintingEventArgs.cs
- SystemIPInterfaceProperties.cs
- DSACryptoServiceProvider.cs
- Tablet.cs
- TargetException.cs
- HuffModule.cs
- SafeNativeMethods.cs
- DataContractSet.cs
- CryptographicAttribute.cs
- ListParagraph.cs
- ResourceDescriptionAttribute.cs
- HitTestWithPointDrawingContextWalker.cs
- IntMinMaxAggregationOperator.cs
- Hex.cs
- RenderData.cs
- AlphabetConverter.cs
- WorkflowInstanceExtensionManager.cs
- XhtmlBasicLinkAdapter.cs
- XmlSchemaComplexContentRestriction.cs
- InkPresenterAutomationPeer.cs
- RuleConditionDialog.Designer.cs
- ResourcesChangeInfo.cs
- AttributeEmitter.cs
- FileSystemWatcher.cs
- EpmContentSerializerBase.cs
- Opcode.cs
- SecurityCriticalDataForSet.cs
- ExtensionQuery.cs
- AbstractDataSvcMapFileLoader.cs
- FixedBufferAttribute.cs
- odbcmetadatacolumnnames.cs
- LinqToSqlWrapper.cs
- OleDbFactory.cs
- Help.cs
- DataRowCollection.cs
- LowerCaseStringConverter.cs
- COM2PropertyBuilderUITypeEditor.cs
- SystemIPInterfaceProperties.cs
- ContentTextAutomationPeer.cs
- PolyBezierSegmentFigureLogic.cs
- Int32CAMarshaler.cs
- Transform3D.cs
- MenuStrip.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ControlValuePropertyAttribute.cs
- ActivityCodeDomSerializer.cs
- XPathQilFactory.cs
- SharedPersonalizationStateInfo.cs
- HttpListenerTimeoutManager.cs
- TextDecorationCollection.cs
- XmlSchemaExporter.cs
- MenuItem.cs
- SizeFConverter.cs
- WriteTimeStream.cs
- SoapProtocolImporter.cs
- VoiceChangeEventArgs.cs
- WebBaseEventKeyComparer.cs
- WindowsAuthenticationEventArgs.cs
- PointF.cs
- ProxyWebPartConnectionCollection.cs
- ParameterRetriever.cs
- Message.cs
- SqlTriggerContext.cs
- InputBinder.cs