Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / BaseParser.cs / 1471291 / BaseParser.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Implements the ASP.NET template parser
*
* Copyright (c) 1998 Microsoft Corporation
*/
/*********************************
Class hierarchy
BaseParser
DependencyParser
TemplateControlDependencyParser
PageDependencyParser
UserControlDependencyParser
MasterPageDependencyParser
TemplateParser
BaseTemplateParser
TemplateControlParser
PageParser
UserControlParser
MasterPageParser
PageThemeParser
ApplicationFileParser
**********************************/
namespace System.Web.UI {
using System;
using System.Collections;
using System.Reflection;
using System.Web.Compilation;
using System.Web.Hosting;
using System.Web.Util;
using System.Text.RegularExpressions;
using System.Web.RegularExpressions;
using System.Security.Permissions;
// Internal interface for Parser that have exteranl assembly dependency.
internal interface IAssemblyDependencyParser {
ICollection AssemblyDependencies { get; }
}
///
/// [To be supplied.]
///
public class BaseParser {
// The directory used for relative path calculations
private VirtualPath _baseVirtualDir;
internal VirtualPath BaseVirtualDir {
get { return _baseVirtualDir; }
}
// The virtual path to the file currently being processed
private VirtualPath _currentVirtualPath;
internal VirtualPath CurrentVirtualPath {
get { return _currentVirtualPath; }
set {
_currentVirtualPath = value;
// Can happen in the designer
if (value == null) return;
_baseVirtualDir = value.Parent;
}
}
internal string CurrentVirtualPathString {
get { return System.Web.VirtualPath.GetVirtualPathString(CurrentVirtualPath); }
}
private Regex _tagRegex;
// The 3.5 regex is used only when targeting 2.0/3.5 for backward compatibility (Dev10 bug 830783).
private readonly static Regex tagRegex35 = new TagRegex35();
// The 4.0 regex is used for web sites targeting 4.0 and above.
private readonly static Regex tagRegex40 = new TagRegex();
internal readonly static Regex directiveRegex = new DirectiveRegex();
internal readonly static Regex endtagRegex = new EndTagRegex();
internal readonly static Regex aspCodeRegex = new AspCodeRegex();
internal readonly static Regex aspExprRegex = new AspExprRegex();
internal readonly static Regex aspEncodedExprRegex = new AspEncodedExprRegex();
internal readonly static Regex databindExprRegex = new DatabindExprRegex();
internal readonly static Regex commentRegex = new CommentRegex();
internal readonly static Regex includeRegex = new IncludeRegex();
internal readonly static Regex textRegex = new TextRegex();
// Regexes used in DetectSpecialServerTagError
internal readonly static Regex gtRegex = new GTRegex();
internal readonly static Regex ltRegex = new LTRegex();
internal readonly static Regex serverTagsRegex = new ServerTagsRegex();
internal readonly static Regex runatServerRegex = new RunatServerRegex();
/*
* Turns relative virtual path into absolute ones
*/
internal VirtualPath ResolveVirtualPath(VirtualPath virtualPath) {
return VirtualPathProvider.CombineVirtualPathsInternal(CurrentVirtualPath, virtualPath);
}
private bool IsVersion40OrAbove() {
if (HostingEnvironment.IsHosted) {
// If we are running in a hosted environment, then we can simply check the target version.
return MultiTargetingUtil.IsTargetFramework40OrAbove;
}
else {
// Otherwise, we are in the designer, and thus should check using the type description provider.
// The new type TagRegex35 only exists when targeting 4.0 and above.
return TargetFrameworkUtil.IsSupportedType(typeof(TagRegex35));
}
}
internal Regex TagRegex {
get {
if (_tagRegex == null) {
_tagRegex = IsVersion40OrAbove() ? tagRegex40 : tagRegex35;
}
return _tagRegex;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Implements the ASP.NET template parser
*
* Copyright (c) 1998 Microsoft Corporation
*/
/*********************************
Class hierarchy
BaseParser
DependencyParser
TemplateControlDependencyParser
PageDependencyParser
UserControlDependencyParser
MasterPageDependencyParser
TemplateParser
BaseTemplateParser
TemplateControlParser
PageParser
UserControlParser
MasterPageParser
PageThemeParser
ApplicationFileParser
**********************************/
namespace System.Web.UI {
using System;
using System.Collections;
using System.Reflection;
using System.Web.Compilation;
using System.Web.Hosting;
using System.Web.Util;
using System.Text.RegularExpressions;
using System.Web.RegularExpressions;
using System.Security.Permissions;
// Internal interface for Parser that have exteranl assembly dependency.
internal interface IAssemblyDependencyParser {
ICollection AssemblyDependencies { get; }
}
///
/// [To be supplied.]
///
public class BaseParser {
// The directory used for relative path calculations
private VirtualPath _baseVirtualDir;
internal VirtualPath BaseVirtualDir {
get { return _baseVirtualDir; }
}
// The virtual path to the file currently being processed
private VirtualPath _currentVirtualPath;
internal VirtualPath CurrentVirtualPath {
get { return _currentVirtualPath; }
set {
_currentVirtualPath = value;
// Can happen in the designer
if (value == null) return;
_baseVirtualDir = value.Parent;
}
}
internal string CurrentVirtualPathString {
get { return System.Web.VirtualPath.GetVirtualPathString(CurrentVirtualPath); }
}
private Regex _tagRegex;
// The 3.5 regex is used only when targeting 2.0/3.5 for backward compatibility (Dev10 bug 830783).
private readonly static Regex tagRegex35 = new TagRegex35();
// The 4.0 regex is used for web sites targeting 4.0 and above.
private readonly static Regex tagRegex40 = new TagRegex();
internal readonly static Regex directiveRegex = new DirectiveRegex();
internal readonly static Regex endtagRegex = new EndTagRegex();
internal readonly static Regex aspCodeRegex = new AspCodeRegex();
internal readonly static Regex aspExprRegex = new AspExprRegex();
internal readonly static Regex aspEncodedExprRegex = new AspEncodedExprRegex();
internal readonly static Regex databindExprRegex = new DatabindExprRegex();
internal readonly static Regex commentRegex = new CommentRegex();
internal readonly static Regex includeRegex = new IncludeRegex();
internal readonly static Regex textRegex = new TextRegex();
// Regexes used in DetectSpecialServerTagError
internal readonly static Regex gtRegex = new GTRegex();
internal readonly static Regex ltRegex = new LTRegex();
internal readonly static Regex serverTagsRegex = new ServerTagsRegex();
internal readonly static Regex runatServerRegex = new RunatServerRegex();
/*
* Turns relative virtual path into absolute ones
*/
internal VirtualPath ResolveVirtualPath(VirtualPath virtualPath) {
return VirtualPathProvider.CombineVirtualPathsInternal(CurrentVirtualPath, virtualPath);
}
private bool IsVersion40OrAbove() {
if (HostingEnvironment.IsHosted) {
// If we are running in a hosted environment, then we can simply check the target version.
return MultiTargetingUtil.IsTargetFramework40OrAbove;
}
else {
// Otherwise, we are in the designer, and thus should check using the type description provider.
// The new type TagRegex35 only exists when targeting 4.0 and above.
return TargetFrameworkUtil.IsSupportedType(typeof(TagRegex35));
}
}
internal Regex TagRegex {
get {
if (_tagRegex == null) {
_tagRegex = IsVersion40OrAbove() ? tagRegex40 : tagRegex35;
}
return _tagRegex;
}
}
}
}
// 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
- ConnectionConsumerAttribute.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- NullableFloatSumAggregationOperator.cs
- Property.cs
- UnionCqlBlock.cs
- ListBoxChrome.cs
- SqlProviderUtilities.cs
- SafeEventLogWriteHandle.cs
- BasicHttpSecurityMode.cs
- TimeManager.cs
- ExpressionHelper.cs
- ListViewHitTestInfo.cs
- ServiceSecurityAuditBehavior.cs
- FormViewAutoFormat.cs
- TextTreeUndoUnit.cs
- Invariant.cs
- HttpConfigurationSystem.cs
- QilParameter.cs
- CompilationSection.cs
- ExceptionHandler.cs
- SignatureHelper.cs
- LinkLabel.cs
- MetadataUtil.cs
- SystemIPv6InterfaceProperties.cs
- FormViewUpdateEventArgs.cs
- NullRuntimeConfig.cs
- ObjectComplexPropertyMapping.cs
- ArrangedElement.cs
- ControlPropertyNameConverter.cs
- WebPartConnection.cs
- DefaultCompensation.cs
- EventKeyword.cs
- X509Logo.cs
- StreamBodyWriter.cs
- XPathEmptyIterator.cs
- FacetChecker.cs
- ScriptControlDescriptor.cs
- CounterCreationDataCollection.cs
- XAMLParseException.cs
- Ref.cs
- SQLByte.cs
- HttpCapabilitiesBase.cs
- LingerOption.cs
- EpmTargetTree.cs
- SweepDirectionValidation.cs
- SerializationSectionGroup.cs
- NamespaceInfo.cs
- ModuleConfigurationInfo.cs
- InternalConfigEventArgs.cs
- AttributeEmitter.cs
- Visual.cs
- NavigationPropertyEmitter.cs
- DataPointer.cs
- TextBlockAutomationPeer.cs
- RegexReplacement.cs
- XmlSchemaImport.cs
- DataGridViewRowCancelEventArgs.cs
- GridViewColumn.cs
- Attribute.cs
- Model3D.cs
- DoubleLinkList.cs
- XmlEntityReference.cs
- EntityTypeBase.cs
- LifetimeManager.cs
- _TimerThread.cs
- SQLGuidStorage.cs
- MulticastOption.cs
- basecomparevalidator.cs
- StyleXamlTreeBuilder.cs
- PrintController.cs
- MulticastNotSupportedException.cs
- MergePropertyDescriptor.cs
- DataMisalignedException.cs
- SqlWriter.cs
- AliasedExpr.cs
- StateMachineWorkflow.cs
- DataGridViewCellMouseEventArgs.cs
- HitTestWithPointDrawingContextWalker.cs
- EditModeSwitchButton.cs
- TeredoHelper.cs
- altserialization.cs
- RtfToXamlReader.cs
- DocumentGrid.cs
- Exceptions.cs
- AttachInfo.cs
- XamlGridLengthSerializer.cs
- CompositeCollection.cs
- GridViewSelectEventArgs.cs
- OdbcRowUpdatingEvent.cs
- SelectionRangeConverter.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- InputScopeNameConverter.cs
- _NegoState.cs
- DesignOnlyAttribute.cs
- TaskFormBase.cs
- QilXmlReader.cs
- DynamicEntity.cs
- ReflectionUtil.cs
- XmlQueryContext.cs
- DataSourceSerializationException.cs