Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- DesignTimeResourceProviderFactoryAttribute.cs
- QueuePathEditor.cs
- invalidudtexception.cs
- SecUtil.cs
- WhitespaceRule.cs
- MouseActionValueSerializer.cs
- XmlQualifiedNameTest.cs
- XmlWriterSettings.cs
- HttpListenerResponse.cs
- UpdateManifestForBrowserApplication.cs
- UriTemplateVariablePathSegment.cs
- ZipIOExtraFieldElement.cs
- SplitterCancelEvent.cs
- CodeVariableDeclarationStatement.cs
- NoneExcludedImageIndexConverter.cs
- StorageMappingItemCollection.cs
- EntityDataSourceView.cs
- ServiceHttpHandlerFactory.cs
- DataGridState.cs
- RepeaterItem.cs
- CorrelationHandle.cs
- SHA256.cs
- SymDocumentType.cs
- TypeDelegator.cs
- InputReport.cs
- Substitution.cs
- ColorMatrix.cs
- Frame.cs
- CryptoApi.cs
- SplitContainer.cs
- ObjectFullSpanRewriter.cs
- NotImplementedException.cs
- Invariant.cs
- _NetworkingPerfCounters.cs
- CustomErrorCollection.cs
- Geometry.cs
- StylusPointPropertyId.cs
- HierarchicalDataBoundControl.cs
- ReadWriteSpinLock.cs
- JsonSerializer.cs
- KeyMatchBuilder.cs
- IntegrationExceptionEventArgs.cs
- RewritingSimplifier.cs
- EventLogInformation.cs
- AQNBuilder.cs
- RestClientProxyHandler.cs
- DataGridTextBox.cs
- CodeIndexerExpression.cs
- columnmapfactory.cs
- Propagator.Evaluator.cs
- ToolStripDropDownButton.cs
- XmlNodeChangedEventArgs.cs
- SafeProcessHandle.cs
- ListViewInsertionMark.cs
- XmlExtensionFunction.cs
- StringExpressionSet.cs
- NameSpaceEvent.cs
- GridPatternIdentifiers.cs
- RuntimeIdentifierPropertyAttribute.cs
- PermissionSetTriple.cs
- LinkDescriptor.cs
- LassoSelectionBehavior.cs
- ActiveXContainer.cs
- Padding.cs
- ReliableReplySessionChannel.cs
- IApplicationTrustManager.cs
- ScriptingRoleServiceSection.cs
- SQLResource.cs
- Peer.cs
- RestHandlerFactory.cs
- TextRangeEditLists.cs
- BackStopAuthenticationModule.cs
- TypeListConverter.cs
- WsdlImporterElementCollection.cs
- EntityDataSourceDataSelection.cs
- SqlFunctions.cs
- ManagedIStream.cs
- RegexFCD.cs
- TdsEnums.cs
- ContentIterators.cs
- ZipPackage.cs
- TemplateBamlRecordReader.cs
- EntityContainerRelationshipSetEnd.cs
- TypeConverterValueSerializer.cs
- BamlRecords.cs
- ObjectViewListener.cs
- UriSectionReader.cs
- ConfigurationLocation.cs
- MobileCategoryAttribute.cs
- Parser.cs
- DictionaryMarkupSerializer.cs
- ObfuscateAssemblyAttribute.cs
- TextEditorThreadLocalStore.cs
- FixedTextBuilder.cs
- FormViewPagerRow.cs
- Image.cs
- ProviderConnectionPointCollection.cs
- Interlocked.cs
- LazyInitializer.cs
- FormViewInsertEventArgs.cs