Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Compilation / PageThemeBuildProvider.cs / 2 / 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.
//------------------------------------------------------------------------------
//
// 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WsdlBuildProvider.cs
- TableLayoutPanelCellPosition.cs
- XmlSchemaCompilationSettings.cs
- LayoutTable.cs
- StreamUpdate.cs
- CmsUtils.cs
- XmlSubtreeReader.cs
- RIPEMD160.cs
- QueryTask.cs
- PropertiesTab.cs
- MsmqInputChannelListener.cs
- DataViewManager.cs
- ErrorHandler.cs
- Assert.cs
- EntityDataSourceWrapperCollection.cs
- EncoderBestFitFallback.cs
- X509CertificateCollection.cs
- ReadingWritingEntityEventArgs.cs
- MenuItemBindingCollection.cs
- Rule.cs
- MultiDataTrigger.cs
- SynchronizationContext.cs
- TimeStampChecker.cs
- FactoryId.cs
- SchemaNamespaceManager.cs
- ControlPaint.cs
- XamlSerializerUtil.cs
- AvTrace.cs
- pingexception.cs
- TextServicesDisplayAttributePropertyRanges.cs
- VersionPair.cs
- DispatcherObject.cs
- MessageDecoder.cs
- DecodeHelper.cs
- UpdateManifestForBrowserApplication.cs
- cryptoapiTransform.cs
- TemplateBuilder.cs
- DataGridRelationshipRow.cs
- HtmlMeta.cs
- InlineUIContainer.cs
- RegisteredArrayDeclaration.cs
- UnsafeNativeMethods.cs
- BackgroundWorker.cs
- AppDomainFactory.cs
- StandardToolWindows.cs
- Keywords.cs
- MergeFilterQuery.cs
- IDispatchConstantAttribute.cs
- DesignerActionGlyph.cs
- InputScope.cs
- FixedHighlight.cs
- ProfilePropertySettings.cs
- CodeGotoStatement.cs
- DetailsViewCommandEventArgs.cs
- TemplateBindingExpressionConverter.cs
- ListDesigner.cs
- VectorCollectionValueSerializer.cs
- CharAnimationBase.cs
- XhtmlMobileTextWriter.cs
- BuildProviderAppliesToAttribute.cs
- LiteralControl.cs
- MSG.cs
- RelationshipDetailsCollection.cs
- ToolboxItemCollection.cs
- SafeLibraryHandle.cs
- AsymmetricKeyExchangeFormatter.cs
- ThousandthOfEmRealDoubles.cs
- DbExpressionBuilder.cs
- ReservationCollection.cs
- NavigatorOutput.cs
- IDictionary.cs
- OletxCommittableTransaction.cs
- OleDbConnectionFactory.cs
- ColorBuilder.cs
- MatrixTransform.cs
- ScriptBehaviorDescriptor.cs
- XamlGridLengthSerializer.cs
- ProcessInfo.cs
- METAHEADER.cs
- EventLogEntryCollection.cs
- TextFormatterImp.cs
- Endpoint.cs
- ViewPort3D.cs
- _Semaphore.cs
- NegationPusher.cs
- EmptyStringExpandableObjectConverter.cs
- DisableDpiAwarenessAttribute.cs
- LayoutUtils.cs
- MDIClient.cs
- PathHelper.cs
- WmpBitmapEncoder.cs
- DataGridViewTextBoxColumn.cs
- StreamResourceInfo.cs
- StreamingContext.cs
- SamlConstants.cs
- XmlSchemaAll.cs
- PeerMaintainer.cs
- Stack.cs
- Color.cs
- AdapterSwitches.cs