Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- FieldCollectionEditor.cs
- DataGridRow.cs
- EntitySqlQueryState.cs
- Events.cs
- EntityClassGenerator.cs
- StaticContext.cs
- PixelFormat.cs
- HttpCacheVaryByContentEncodings.cs
- PenLineJoinValidation.cs
- GeneralTransform3DTo2DTo3D.cs
- MessageQueueInstaller.cs
- TableLayoutSettingsTypeConverter.cs
- InkCanvasFeedbackAdorner.cs
- FixedBufferAttribute.cs
- BezierSegment.cs
- GridViewRow.cs
- AmbientProperties.cs
- FileStream.cs
- WizardPanel.cs
- CollectionChange.cs
- WebPartDisplayModeEventArgs.cs
- infer.cs
- SQLRoleProvider.cs
- SpecularMaterial.cs
- ReflectionUtil.cs
- WindowsStreamSecurityElement.cs
- Pen.cs
- CustomAttribute.cs
- JsonObjectDataContract.cs
- DocumentPageView.cs
- MatcherBuilder.cs
- HashHelper.cs
- ErrorTableItemStyle.cs
- Emitter.cs
- InstanceNormalEvent.cs
- HttpBindingExtension.cs
- Grid.cs
- ApplySecurityAndSendAsyncResult.cs
- TabletCollection.cs
- FileChangeNotifier.cs
- ExternalCalls.cs
- OracleSqlParser.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- BuildManagerHost.cs
- HttpCachePolicyWrapper.cs
- UnsafeNativeMethodsCLR.cs
- WebBrowserNavigatedEventHandler.cs
- OnOperation.cs
- BaseHashHelper.cs
- Models.cs
- wgx_exports.cs
- ClientRoleProvider.cs
- Int16AnimationUsingKeyFrames.cs
- ConnectionPool.cs
- XmlQualifiedNameTest.cs
- TableCell.cs
- XmlAnyElementAttribute.cs
- Scripts.cs
- SortedDictionary.cs
- OrderingQueryOperator.cs
- UiaCoreProviderApi.cs
- TextParagraph.cs
- ISAPIRuntime.cs
- ErrorHandler.cs
- WebPartsPersonalization.cs
- DynamicPropertyReader.cs
- BinaryCommonClasses.cs
- HostProtectionPermission.cs
- HwndSourceKeyboardInputSite.cs
- CategoryState.cs
- WindowsEditBoxRange.cs
- SiteIdentityPermission.cs
- DebugTraceHelper.cs
- IfAction.cs
- SiteMapHierarchicalDataSourceView.cs
- ConnectionManagementSection.cs
- DeclaredTypeValidator.cs
- KeyInterop.cs
- VariableExpressionConverter.cs
- SelectionProviderWrapper.cs
- OdbcParameter.cs
- XmlSerializerVersionAttribute.cs
- BindingMemberInfo.cs
- SafeViewOfFileHandle.cs
- StringAnimationBase.cs
- MembershipPasswordException.cs
- UndoManager.cs
- XmlAnyElementAttribute.cs
- SqlEnums.cs
- ReflectionPermission.cs
- SystemIcmpV6Statistics.cs
- LoginName.cs
- SmiRecordBuffer.cs
- FormViewUpdatedEventArgs.cs
- TypeGeneratedEventArgs.cs
- TryCatch.cs
- relpropertyhelper.cs
- ObjRef.cs
- NullPackagingPolicy.cs
- ToolConsole.cs