Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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
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.
//------------------------------------------------------------------------------
//
// 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
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbConnectionPoolOptions.cs
- RoutingExtension.cs
- XamlParser.cs
- CacheModeConverter.cs
- BufferedReadStream.cs
- UInt16Converter.cs
- DESCryptoServiceProvider.cs
- IntranetCredentialPolicy.cs
- MappedMetaModel.cs
- ProfileGroupSettingsCollection.cs
- FixedSOMContainer.cs
- StoryFragments.cs
- FileDialogCustomPlaces.cs
- EdmToObjectNamespaceMap.cs
- HttpCapabilitiesSectionHandler.cs
- XPathAxisIterator.cs
- SafeMILHandle.cs
- FloaterBaseParaClient.cs
- SQLInt16.cs
- BitmapEffectInputData.cs
- XmlException.cs
- VisualStyleRenderer.cs
- SoapAttributes.cs
- AppSettingsSection.cs
- XmlNavigatorStack.cs
- TripleDESCryptoServiceProvider.cs
- DivideByZeroException.cs
- RoleService.cs
- SmtpClient.cs
- SynchronizedInputAdaptor.cs
- ShadowGlyph.cs
- ResourceDictionary.cs
- FontNameConverter.cs
- PrintPageEvent.cs
- FlatButtonAppearance.cs
- RectKeyFrameCollection.cs
- FormatterServices.cs
- SystemResourceHost.cs
- BatchServiceHost.cs
- ArraySegment.cs
- ListViewEditEventArgs.cs
- RemoteWebConfigurationHost.cs
- XmlTextReaderImpl.cs
- Duration.cs
- MemoryStream.cs
- DocumentCollection.cs
- BindingWorker.cs
- TextBox.cs
- EndpointPerformanceCounters.cs
- GeometryGroup.cs
- RayHitTestParameters.cs
- LogSwitch.cs
- SqlXmlStorage.cs
- XmlSerializationReader.cs
- HeaderUtility.cs
- PreProcessor.cs
- SQLStringStorage.cs
- Transaction.cs
- FixedTextBuilder.cs
- MouseEvent.cs
- SingleObjectCollection.cs
- RadioButton.cs
- ExtendedPropertyDescriptor.cs
- InkCanvasFeedbackAdorner.cs
- SortedList.cs
- HitTestWithPointDrawingContextWalker.cs
- SQLGuidStorage.cs
- MimePart.cs
- DocumentViewerConstants.cs
- EllipseGeometry.cs
- WebPartHeaderCloseVerb.cs
- NumberFormatter.cs
- SafeFileMappingHandle.cs
- LOSFormatter.cs
- Rfc2898DeriveBytes.cs
- ObjectDataSourceEventArgs.cs
- QueryExpression.cs
- FormatConvertedBitmap.cs
- MsmqTransportElement.cs
- Binding.cs
- HttpFileCollection.cs
- TargetParameterCountException.cs
- DataGridItemCollection.cs
- XmlSchemaImporter.cs
- XmlAtomicValue.cs
- CounterSampleCalculator.cs
- NetSectionGroup.cs
- DocumentPropertiesDialog.cs
- SQLRoleProvider.cs
- remotingproxy.cs
- CodeGotoStatement.cs
- DataObject.cs
- SourceItem.cs
- TablePatternIdentifiers.cs
- WorkflowFileItem.cs
- WebPartHelpVerb.cs
- DataControlLinkButton.cs
- CharStorage.cs
- AppSettingsExpressionBuilder.cs
- NavigationProperty.cs