Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / UI / MasterPageParser.cs / 1 / 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
- SkewTransform.cs
- SemaphoreSlim.cs
- DataGridViewLinkColumn.cs
- Attributes.cs
- SqlIdentifier.cs
- DesignerTextBoxAdapter.cs
- WebPartEditorOkVerb.cs
- HotSpotCollection.cs
- MgmtConfigurationRecord.cs
- Ops.cs
- QilTargetType.cs
- Stack.cs
- DefinitionUpdate.cs
- InternalEnumValidatorAttribute.cs
- CryptoApi.cs
- HostingEnvironment.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- DataGridViewCellPaintingEventArgs.cs
- ObjectDataSourceEventArgs.cs
- XmlSchemaParticle.cs
- Triplet.cs
- SystemThemeKey.cs
- SplitterCancelEvent.cs
- ConfigXmlText.cs
- InkCanvasFeedbackAdorner.cs
- SQLRoleProvider.cs
- JsonReader.cs
- LinkArea.cs
- EmbossBitmapEffect.cs
- DbQueryCommandTree.cs
- ZipFileInfoCollection.cs
- SvcMapFileSerializer.cs
- SoapFaultCodes.cs
- PageAsyncTask.cs
- XslException.cs
- NullRuntimeConfig.cs
- ScrollContentPresenter.cs
- WebConfigurationManager.cs
- ReturnValue.cs
- GeneralTransform3DGroup.cs
- DataColumnPropertyDescriptor.cs
- SchemaElementLookUpTableEnumerator.cs
- ObjectTypeMapping.cs
- MimeWriter.cs
- ExecutedRoutedEventArgs.cs
- WebPartManagerInternals.cs
- Rect.cs
- DocumentDesigner.cs
- UserPersonalizationStateInfo.cs
- PrintPreviewGraphics.cs
- Int16Storage.cs
- XPathSingletonIterator.cs
- XpsFilter.cs
- TopClause.cs
- XmlSchemaDocumentation.cs
- StyleXamlTreeBuilder.cs
- EventPropertyMap.cs
- PackageProperties.cs
- Brushes.cs
- DbConnectionHelper.cs
- ConfigurationException.cs
- Pair.cs
- ObservableDictionary.cs
- ToolStrip.cs
- SmtpLoginAuthenticationModule.cs
- FormattedTextSymbols.cs
- RegexStringValidator.cs
- AccessDataSource.cs
- ComUdtElementCollection.cs
- ExtractCollection.cs
- EventHandlingScope.cs
- MailMessageEventArgs.cs
- PageThemeParser.cs
- DbDataReader.cs
- XmlSerializerAssemblyAttribute.cs
- RegistrySecurity.cs
- DBSqlParserColumnCollection.cs
- TickBar.cs
- TextEffectCollection.cs
- ContractMethodInfo.cs
- CodeCompileUnit.cs
- SpecialFolderEnumConverter.cs
- DefaultParameterValueAttribute.cs
- UnaryNode.cs
- IMembershipProvider.cs
- BuilderInfo.cs
- HtmlHistory.cs
- WindowsStreamSecurityElement.cs
- XmlSchemaObjectCollection.cs
- DataGridCell.cs
- VersionPair.cs
- PeerReferralPolicy.cs
- TargetConverter.cs
- BinHexDecoder.cs
- GPRECT.cs
- VariableModifiersHelper.cs
- BuildManager.cs
- DataGridGeneralPage.cs
- PartialCachingAttribute.cs
- TreeSet.cs