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
- NestPullup.cs
- DrawingVisual.cs
- SkinIDTypeConverter.cs
- DataSourceHelper.cs
- PersistNameAttribute.cs
- HtmlTable.cs
- RouteParameter.cs
- TemplateXamlTreeBuilder.cs
- XmlCodeExporter.cs
- HttpHandlerAction.cs
- AutomationIdentifierGuids.cs
- SlipBehavior.cs
- ListViewItemMouseHoverEvent.cs
- UnsafeNativeMethods.cs
- AmbientValueAttribute.cs
- DeviceContext2.cs
- Encoder.cs
- QueryCreatedEventArgs.cs
- PageVisual.cs
- NetTcpBindingCollectionElement.cs
- GrammarBuilderPhrase.cs
- MultilineStringConverter.cs
- XmlSchemaObject.cs
- InstanceNormalEvent.cs
- DataGridSortingEventArgs.cs
- DataServiceRequest.cs
- SiteMembershipCondition.cs
- ParserHooks.cs
- SystemIPv4InterfaceProperties.cs
- Rotation3DAnimationUsingKeyFrames.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- LinqDataSourceContextData.cs
- SqlInfoMessageEvent.cs
- Crc32.cs
- ContentOnlyMessage.cs
- QualifiedCellIdBoolean.cs
- OracleConnectionStringBuilder.cs
- AttributedMetaModel.cs
- SmtpReplyReader.cs
- assemblycache.cs
- EncoderBestFitFallback.cs
- FieldToken.cs
- TimeSpanHelper.cs
- ReflectPropertyDescriptor.cs
- DataControlFieldCell.cs
- PagedDataSource.cs
- SimpleMailWebEventProvider.cs
- AssertSection.cs
- ReflectionTypeLoadException.cs
- ServiceOperationHelpers.cs
- InkCanvas.cs
- SiteIdentityPermission.cs
- activationcontext.cs
- CachedPathData.cs
- Keywords.cs
- DataObjectAttribute.cs
- ScrollBarRenderer.cs
- CommandConverter.cs
- DataRecordInfo.cs
- XmlObjectSerializerContext.cs
- ReceiveContext.cs
- ConfigErrorGlyph.cs
- HwndProxyElementProvider.cs
- ListControlConvertEventArgs.cs
- PropertyDescriptorComparer.cs
- DefaultClaimSet.cs
- CSharpCodeProvider.cs
- Vector3DConverter.cs
- AutoResetEvent.cs
- SafeHandle.cs
- BrowserCapabilitiesCodeGenerator.cs
- DateTimeSerializationSection.cs
- ControllableStoryboardAction.cs
- BitmapEffectInputConnector.cs
- SmiMetaData.cs
- UserControlParser.cs
- Track.cs
- DBDataPermission.cs
- UnsafeNativeMethods.cs
- MouseButton.cs
- MatcherBuilder.cs
- SystemIPGlobalStatistics.cs
- StrokeNodeOperations2.cs
- TreeIterator.cs
- SapiRecoInterop.cs
- MDIControlStrip.cs
- XomlCompilerResults.cs
- TextMarkerSource.cs
- ScrollProperties.cs
- UserControl.cs
- Switch.cs
- UTF32Encoding.cs
- ChannelTracker.cs
- FrameworkObject.cs
- ExtentCqlBlock.cs
- PrivacyNoticeBindingElement.cs
- WindowsContainer.cs
- DragEvent.cs
- ManagementPath.cs
- DataSourceComponent.cs