Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / MasterPageParser.cs / 1305376 / MasterPageParser.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Implements the ASP.NET master page parser
*
* Copyright (c) 1998 Microsoft Corporation
*/
namespace System.Web.UI {
using System;
using System.Collections;
using System.IO;
using System.Security;
using System.Security.Permissions;
using System.Web.Compilation;
using System.Globalization;
using System.Web;
using System.Web.Util;
/*
* Parser for MasterPage
*/
internal sealed class MasterPageParser : UserControlParser {
internal override Type DefaultBaseType { get { return typeof(System.Web.UI.MasterPage); } }
internal new const string defaultDirectiveName = "master";
internal override string DefaultDirectiveName {
get { return defaultDirectiveName; }
}
internal override Type DefaultFileLevelBuilderType {
get {
return typeof(FileLevelMasterPageControlBuilder);
}
}
private Type _masterPageType;
internal Type MasterPageType { get { return _masterPageType; } }
private CaseInsensitiveStringSet _placeHolderList;
internal CaseInsensitiveStringSet PlaceHolderList {
get {
if (_placeHolderList == null)
_placeHolderList = new CaseInsensitiveStringSet();
return _placeHolderList;
}
}
// Do not apply the basetype. Override this method
// so the userControlbasetype do not affect masterpages.
internal override void ApplyBaseType() {
}
internal override RootBuilder CreateDefaultFileLevelBuilder() {
return new FileLevelMasterPageControlBuilder();
}
internal override void ProcessDirective(string directiveName, IDictionary directive) {
if (StringUtil.EqualsIgnoreCase(directiveName, "masterType")) {
if (_masterPageType != null) {
ProcessError(SR.GetString(SR.Only_one_directive_allowed, directiveName));
return;
}
_masterPageType = GetDirectiveType(directive, directiveName);
Util.CheckAssignableType(typeof(MasterPage), _masterPageType);
}
// outputcaching is not allowed on masterpages.
else if (StringUtil.EqualsIgnoreCase(directiveName, "outputcache")) {
ProcessError(SR.GetString(SR.Directive_not_allowed, directiveName));
return;
}
else {
base.ProcessDirective(directiveName, directive);
}
}
internal override bool ProcessMainDirectiveAttribute(string deviceName, string name,
string value, IDictionary parseData) {
switch (name) {
case "masterpagefile":
// Skip validity check for expression builder (e.g. <%$ ... %>)
if (IsExpressionBuilderValue(value)) return false;
if (value.Length > 0) {
// Add dependency on the Type by calling this method
Type type = GetReferencedType(value);
Util.CheckAssignableType(typeof(MasterPage), type);
}
// Return false to let the generic attribute processing continue
return false;
// outputcaching is not allowed on masterpages.
case "outputcaching" :
ProcessError(SR.GetString(SR.Attr_not_supported_in_directive,
name, DefaultDirectiveName));
// Return false to let the generic attribute processing continue
return false;
default:
// We didn't handle the attribute. Try the base class
return base.ProcessMainDirectiveAttribute(deviceName, name, value, parseData);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Implements the ASP.NET master page parser
*
* Copyright (c) 1998 Microsoft Corporation
*/
namespace System.Web.UI {
using System;
using System.Collections;
using System.IO;
using System.Security;
using System.Security.Permissions;
using System.Web.Compilation;
using System.Globalization;
using System.Web;
using System.Web.Util;
/*
* Parser for MasterPage
*/
internal sealed class MasterPageParser : UserControlParser {
internal override Type DefaultBaseType { get { return typeof(System.Web.UI.MasterPage); } }
internal new const string defaultDirectiveName = "master";
internal override string DefaultDirectiveName {
get { return defaultDirectiveName; }
}
internal override Type DefaultFileLevelBuilderType {
get {
return typeof(FileLevelMasterPageControlBuilder);
}
}
private Type _masterPageType;
internal Type MasterPageType { get { return _masterPageType; } }
private CaseInsensitiveStringSet _placeHolderList;
internal CaseInsensitiveStringSet PlaceHolderList {
get {
if (_placeHolderList == null)
_placeHolderList = new CaseInsensitiveStringSet();
return _placeHolderList;
}
}
// Do not apply the basetype. Override this method
// so the userControlbasetype do not affect masterpages.
internal override void ApplyBaseType() {
}
internal override RootBuilder CreateDefaultFileLevelBuilder() {
return new FileLevelMasterPageControlBuilder();
}
internal override void ProcessDirective(string directiveName, IDictionary directive) {
if (StringUtil.EqualsIgnoreCase(directiveName, "masterType")) {
if (_masterPageType != null) {
ProcessError(SR.GetString(SR.Only_one_directive_allowed, directiveName));
return;
}
_masterPageType = GetDirectiveType(directive, directiveName);
Util.CheckAssignableType(typeof(MasterPage), _masterPageType);
}
// outputcaching is not allowed on masterpages.
else if (StringUtil.EqualsIgnoreCase(directiveName, "outputcache")) {
ProcessError(SR.GetString(SR.Directive_not_allowed, directiveName));
return;
}
else {
base.ProcessDirective(directiveName, directive);
}
}
internal override bool ProcessMainDirectiveAttribute(string deviceName, string name,
string value, IDictionary parseData) {
switch (name) {
case "masterpagefile":
// Skip validity check for expression builder (e.g. <%$ ... %>)
if (IsExpressionBuilderValue(value)) return false;
if (value.Length > 0) {
// Add dependency on the Type by calling this method
Type type = GetReferencedType(value);
Util.CheckAssignableType(typeof(MasterPage), type);
}
// Return false to let the generic attribute processing continue
return false;
// outputcaching is not allowed on masterpages.
case "outputcaching" :
ProcessError(SR.GetString(SR.Attr_not_supported_in_directive,
name, DefaultDirectiveName));
// Return false to let the generic attribute processing continue
return false;
default:
// We didn't handle the attribute. Try the base class
return base.ProcessMainDirectiveAttribute(deviceName, name, value, parseData);
}
}
}
}
// 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
- ContractUtils.cs
- odbcmetadatafactory.cs
- StringBuilder.cs
- SQLInt64.cs
- InternalConfigEventArgs.cs
- HttpHandlerAction.cs
- Int32EqualityComparer.cs
- CalendarData.cs
- OleDbErrorCollection.cs
- InternalSendMessage.cs
- SafePEFileHandle.cs
- CacheForPrimitiveTypes.cs
- ActionFrame.cs
- PropertyManager.cs
- ContentHostHelper.cs
- RestHandler.cs
- FontWeight.cs
- TextEvent.cs
- AuthenticationManager.cs
- SQLString.cs
- SocketPermission.cs
- RightsManagementEncryptedStream.cs
- BaseComponentEditor.cs
- DbQueryCommandTree.cs
- SoundPlayer.cs
- DataBindingHandlerAttribute.cs
- DataSourceControl.cs
- StringConcat.cs
- UnknownBitmapEncoder.cs
- ItemDragEvent.cs
- DbProviderFactories.cs
- ErrorTableItemStyle.cs
- ColorTranslator.cs
- WindowsButton.cs
- Light.cs
- ImpersonationContext.cs
- RegularExpressionValidator.cs
- WebPartConnectionsConnectVerb.cs
- InputLanguageManager.cs
- BitmapScalingModeValidation.cs
- DataGridViewCheckBoxCell.cs
- AsyncDataRequest.cs
- BatchServiceHost.cs
- FixedSOMLineCollection.cs
- CreateParams.cs
- DirectionalLight.cs
- IntranetCredentialPolicy.cs
- SpanIndex.cs
- EmbeddedMailObjectsCollection.cs
- XmlDataSource.cs
- DataList.cs
- DataGridViewCellStateChangedEventArgs.cs
- DataTablePropertyDescriptor.cs
- Geometry.cs
- LoginViewDesigner.cs
- FrameworkElementAutomationPeer.cs
- MeasureItemEvent.cs
- BaseTemplateParser.cs
- FigureParaClient.cs
- CollaborationHelperFunctions.cs
- RbTree.cs
- Int32Animation.cs
- LinqToSqlWrapper.cs
- TypeGenericEnumerableViewSchema.cs
- Configuration.cs
- EditorOptionAttribute.cs
- StreamInfo.cs
- SplashScreen.cs
- DataStorage.cs
- NullExtension.cs
- CheckBox.cs
- XmlSignatureManifest.cs
- BookmarkScopeManager.cs
- FuncCompletionCallbackWrapper.cs
- NumberFormatInfo.cs
- QueryAccessibilityHelpEvent.cs
- StateMachine.cs
- ValidationContext.cs
- NameService.cs
- ScrollPattern.cs
- RegexStringValidator.cs
- TableStyle.cs
- Hashtable.cs
- ContainerSelectorBehavior.cs
- UriParserTemplates.cs
- ExpandCollapseProviderWrapper.cs
- StructuralType.cs
- SQLGuidStorage.cs
- FixedDocument.cs
- MulticastIPAddressInformationCollection.cs
- HashHelper.cs
- RelationshipType.cs
- shaperfactoryquerycachekey.cs
- EntityDataSourceWrapper.cs
- ErrorHandler.cs
- ValidatorCollection.cs
- SafeCryptoHandles.cs
- RuleRefElement.cs
- TextWriter.cs
- EntityException.cs