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
- OdbcReferenceCollection.cs
- NumberFunctions.cs
- NonVisualControlAttribute.cs
- TableParaClient.cs
- LoginCancelEventArgs.cs
- HitTestDrawingContextWalker.cs
- DesignTimeTemplateParser.cs
- securestring.cs
- HttpModuleActionCollection.cs
- SignatureResourcePool.cs
- CheckBox.cs
- RequestNavigateEventArgs.cs
- ProxyFragment.cs
- PointUtil.cs
- ITreeGenerator.cs
- recordstatescratchpad.cs
- AlphabeticalEnumConverter.cs
- Style.cs
- TrackingMemoryStream.cs
- PrePrepareMethodAttribute.cs
- Misc.cs
- Cursor.cs
- ThrowHelper.cs
- StateValidator.cs
- Menu.cs
- SqlAliaser.cs
- ScriptHandlerFactory.cs
- EncodingDataItem.cs
- CodeGen.cs
- MutexSecurity.cs
- MetadataItemCollectionFactory.cs
- DataServiceQueryException.cs
- TemplateBindingExpression.cs
- ViewGenerator.cs
- MaskedTextBoxTextEditorDropDown.cs
- SignedXml.cs
- FragmentQueryKB.cs
- Dispatcher.cs
- DefinitionBase.cs
- HwndSourceKeyboardInputSite.cs
- Stroke.cs
- Bind.cs
- ReflectPropertyDescriptor.cs
- DispatcherEventArgs.cs
- HeaderedContentControl.cs
- CollectionEditor.cs
- TextStore.cs
- ResourcesBuildProvider.cs
- SQlBooleanStorage.cs
- ProfileGroupSettingsCollection.cs
- SplitterEvent.cs
- DateTimeConverter2.cs
- GenericQueueSurrogate.cs
- XmlSchemas.cs
- MethodAccessException.cs
- WmlListAdapter.cs
- DisplayClaim.cs
- BaseInfoTable.cs
- UnlockInstanceAsyncResult.cs
- WorkflowMarkupSerializationException.cs
- LinqDataSourceUpdateEventArgs.cs
- SchemaObjectWriter.cs
- TypeExtension.cs
- ExecutionContext.cs
- OleDbDataAdapter.cs
- CommentEmitter.cs
- VarInfo.cs
- MarkupCompiler.cs
- OracleConnection.cs
- RefType.cs
- PageCatalogPart.cs
- Baml2006KnownTypes.cs
- COAUTHINFO.cs
- MatrixAnimationBase.cs
- ExportOptions.cs
- UserControlCodeDomTreeGenerator.cs
- HMACMD5.cs
- DateTimeFormatInfoScanner.cs
- WinEventWrap.cs
- TemplateBuilder.cs
- HandlerFactoryWrapper.cs
- HierarchicalDataBoundControlAdapter.cs
- HasCopySemanticsAttribute.cs
- webbrowsersite.cs
- ConstraintStruct.cs
- GeneralTransform2DTo3DTo2D.cs
- XomlCompilerHelpers.cs
- GeometryModel3D.cs
- ActivationWorker.cs
- XmlSchemaAnyAttribute.cs
- RandomNumberGenerator.cs
- RSAPKCS1SignatureFormatter.cs
- XmlNodeList.cs
- XslException.cs
- M3DUtil.cs
- AssemblyNameProxy.cs
- TextPointer.cs
- ConnectionProviderAttribute.cs
- SemanticValue.cs
- RenderContext.cs