Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / xsp / System / Web / Extensions / ui / ScriptReferenceBase.cs / 2 / ScriptReferenceBase.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Security.Permissions;
using System.Web;
using System.Web.Resources;
using System.Web.UI.WebControls;
using Debug = System.Diagnostics.Debug;
[
AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal),
AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal),
DefaultProperty("Path"),
]
public abstract class ScriptReferenceBase {
private bool _alwaysLoadBeforeUI;
private IClientUrlResolver _clientUrlResolver;
private Control _containingControl;
private bool _isStaticReference;
private bool _notifyScriptLoaded = true;
private string _path;
private string[] _resourceUICultures;
private ScriptMode _scriptMode;
protected ScriptReferenceBase() {}
internal bool AlwaysLoadBeforeUI {
get {
return _alwaysLoadBeforeUI;
}
set {
_alwaysLoadBeforeUI = value;
}
}
// Used by ScriptManager to associate a ScriptReference with its url resolver
// (i.e. ScriptManager or ScriptManagerProxy)
internal IClientUrlResolver ClientUrlResolver {
get {
return _clientUrlResolver;
}
set {
_clientUrlResolver = value;
}
}
internal Control ContainingControl {
get {
return _containingControl;
}
set {
_containingControl = value;
}
}
// isStaticReference is true if the reference came from a ScriptManager or ScriptManagerProxy scripts collection,
// false if it came from an IScriptControl or ExtenderControl.
internal bool IsStaticReference {
get {
return _isStaticReference;
}
set {
_isStaticReference = value;
}
}
[
Category("Behavior"),
DefaultValue(true),
NotifyParentProperty(true),
ResourceDescription("ScriptReference_NotifyScriptLoaded")
]
public bool NotifyScriptLoaded {
get {
return _notifyScriptLoaded;
}
set {
_notifyScriptLoaded = value;
}
}
[
Category("Behavior"),
DefaultValue(""),
NotifyParentProperty(true),
ResourceDescription("ScriptReference_Path"),
UrlProperty("*.js")
]
public string Path {
get {
return (_path == null) ? String.Empty : _path;
}
set {
_path = value;
}
}
[
ResourceDescription("ScriptReference_ResourceUICultures"),
DefaultValue(null),
Category("Behavior"),
MergableProperty(false),
NotifyParentProperty(true),
TypeConverter(typeof(StringArrayConverter)),
SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays",
Justification = "String[] has existing TypeConverter support, which we don't want to add for List to the assembly just for this property and at this point in the product cycle.")
]
public string[] ResourceUICultures {
get {
return _resourceUICultures;
}
set {
_resourceUICultures = value;
}
}
[
Category("Behavior"),
DefaultValue(ScriptMode.Auto),
NotifyParentProperty(true),
ResourceDescription("ScriptReference_ScriptMode")
]
public ScriptMode ScriptMode {
get {
return _scriptMode;
}
set {
if (value < ScriptMode.Auto || value > ScriptMode.Release) {
throw new ArgumentOutOfRangeException("value");
}
_scriptMode = value;
}
}
protected internal abstract bool IsFromSystemWebExtensions();
// Script path may contain a query string, while script name may not
// Release: foo.js?key=value
// Debug: foo.debug.js?key=value
internal static string GetDebugPath(string releasePath) {
// Per RFC 3986, the '?' delimits the query, regardless of the protocol. This overrides
// an earlier RFC, which stated that FTP protocol allows '?' as path characters.
string pathWithoutQuery;
string query;
if (releasePath.IndexOf('?') >= 0) {
int indexOfQuery = releasePath.IndexOf('?');
pathWithoutQuery = releasePath.Substring(0, indexOfQuery);
query = releasePath.Substring(indexOfQuery);
}
else {
pathWithoutQuery = releasePath;
query = null;
}
if (!pathWithoutQuery.EndsWith(".js", StringComparison.Ordinal)) {
throw new InvalidOperationException(
String.Format(CultureInfo.CurrentUICulture, AtlasWeb.ScriptReference_InvalidReleaseScriptPath, pathWithoutQuery));
}
return ReplaceExtension(pathWithoutQuery) + query;
}
[SuppressMessage("Microsoft.Design", "CA1055", Justification = "Consistent with other URL properties in ASP.NET.")]
protected internal abstract string GetUrl(ScriptManager scriptManager, bool zip);
// Assumes the input ends with ".js". Replaces the ".js" at the end of the input
// with ".debug.js".
protected static string ReplaceExtension(string pathOrName) {
Debug.Assert(pathOrName.EndsWith(".js", StringComparison.Ordinal));
return (pathOrName.Substring(0, pathOrName.Length - 2) + "debug.js");
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Security.Permissions;
using System.Web;
using System.Web.Resources;
using System.Web.UI.WebControls;
using Debug = System.Diagnostics.Debug;
[
AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal),
AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal),
DefaultProperty("Path"),
]
public abstract class ScriptReferenceBase {
private bool _alwaysLoadBeforeUI;
private IClientUrlResolver _clientUrlResolver;
private Control _containingControl;
private bool _isStaticReference;
private bool _notifyScriptLoaded = true;
private string _path;
private string[] _resourceUICultures;
private ScriptMode _scriptMode;
protected ScriptReferenceBase() {}
internal bool AlwaysLoadBeforeUI {
get {
return _alwaysLoadBeforeUI;
}
set {
_alwaysLoadBeforeUI = value;
}
}
// Used by ScriptManager to associate a ScriptReference with its url resolver
// (i.e. ScriptManager or ScriptManagerProxy)
internal IClientUrlResolver ClientUrlResolver {
get {
return _clientUrlResolver;
}
set {
_clientUrlResolver = value;
}
}
internal Control ContainingControl {
get {
return _containingControl;
}
set {
_containingControl = value;
}
}
// isStaticReference is true if the reference came from a ScriptManager or ScriptManagerProxy scripts collection,
// false if it came from an IScriptControl or ExtenderControl.
internal bool IsStaticReference {
get {
return _isStaticReference;
}
set {
_isStaticReference = value;
}
}
[
Category("Behavior"),
DefaultValue(true),
NotifyParentProperty(true),
ResourceDescription("ScriptReference_NotifyScriptLoaded")
]
public bool NotifyScriptLoaded {
get {
return _notifyScriptLoaded;
}
set {
_notifyScriptLoaded = value;
}
}
[
Category("Behavior"),
DefaultValue(""),
NotifyParentProperty(true),
ResourceDescription("ScriptReference_Path"),
UrlProperty("*.js")
]
public string Path {
get {
return (_path == null) ? String.Empty : _path;
}
set {
_path = value;
}
}
[
ResourceDescription("ScriptReference_ResourceUICultures"),
DefaultValue(null),
Category("Behavior"),
MergableProperty(false),
NotifyParentProperty(true),
TypeConverter(typeof(StringArrayConverter)),
SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays",
Justification = "String[] has existing TypeConverter support, which we don't want to add for List to the assembly just for this property and at this point in the product cycle.")
]
public string[] ResourceUICultures {
get {
return _resourceUICultures;
}
set {
_resourceUICultures = value;
}
}
[
Category("Behavior"),
DefaultValue(ScriptMode.Auto),
NotifyParentProperty(true),
ResourceDescription("ScriptReference_ScriptMode")
]
public ScriptMode ScriptMode {
get {
return _scriptMode;
}
set {
if (value < ScriptMode.Auto || value > ScriptMode.Release) {
throw new ArgumentOutOfRangeException("value");
}
_scriptMode = value;
}
}
protected internal abstract bool IsFromSystemWebExtensions();
// Script path may contain a query string, while script name may not
// Release: foo.js?key=value
// Debug: foo.debug.js?key=value
internal static string GetDebugPath(string releasePath) {
// Per RFC 3986, the '?' delimits the query, regardless of the protocol. This overrides
// an earlier RFC, which stated that FTP protocol allows '?' as path characters.
string pathWithoutQuery;
string query;
if (releasePath.IndexOf('?') >= 0) {
int indexOfQuery = releasePath.IndexOf('?');
pathWithoutQuery = releasePath.Substring(0, indexOfQuery);
query = releasePath.Substring(indexOfQuery);
}
else {
pathWithoutQuery = releasePath;
query = null;
}
if (!pathWithoutQuery.EndsWith(".js", StringComparison.Ordinal)) {
throw new InvalidOperationException(
String.Format(CultureInfo.CurrentUICulture, AtlasWeb.ScriptReference_InvalidReleaseScriptPath, pathWithoutQuery));
}
return ReplaceExtension(pathWithoutQuery) + query;
}
[SuppressMessage("Microsoft.Design", "CA1055", Justification = "Consistent with other URL properties in ASP.NET.")]
protected internal abstract string GetUrl(ScriptManager scriptManager, bool zip);
// Assumes the input ends with ".js". Replaces the ".js" at the end of the input
// with ".debug.js".
protected static string ReplaceExtension(string pathOrName) {
Debug.Assert(pathOrName.EndsWith(".js", StringComparison.Ordinal));
return (pathOrName.Substring(0, pathOrName.Length - 2) + "debug.js");
}
}
}
// 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
- HitTestParameters.cs
- SafeLibraryHandle.cs
- TextEffectResolver.cs
- MouseOverProperty.cs
- oledbmetadatacolumnnames.cs
- NestPullup.cs
- ErrorStyle.cs
- HtmlInputRadioButton.cs
- TextElementAutomationPeer.cs
- ScanQueryOperator.cs
- WindowAutomationPeer.cs
- RetriableClipboard.cs
- EraserBehavior.cs
- SqlDependencyUtils.cs
- PriorityChain.cs
- StorageBasedPackageProperties.cs
- ObjectFullSpanRewriter.cs
- DependencyObjectProvider.cs
- ZipIOFileItemStream.cs
- SqlMetaData.cs
- MediaTimeline.cs
- ValueTable.cs
- TreeIterator.cs
- XPathDescendantIterator.cs
- PrinterSettings.cs
- MessageProperties.cs
- SqlMultiplexer.cs
- ImageSourceConverter.cs
- RoutedEventValueSerializer.cs
- SchemaNamespaceManager.cs
- Policy.cs
- MasterPageCodeDomTreeGenerator.cs
- AudioException.cs
- BoolExpressionVisitors.cs
- AmbientProperties.cs
- WindowsImpersonationContext.cs
- TransportReplyChannelAcceptor.cs
- IndicShape.cs
- Variant.cs
- ColorContext.cs
- Command.cs
- _NegotiateClient.cs
- MetadataArtifactLoaderCompositeResource.cs
- DataTemplateKey.cs
- XmlWriterSettings.cs
- HtmlInputReset.cs
- ScriptReferenceEventArgs.cs
- CompilerGlobalScopeAttribute.cs
- ViewCellSlot.cs
- PrintPreviewControl.cs
- SequenceDesigner.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- HwndHost.cs
- ImageCodecInfo.cs
- AnnotationStore.cs
- ResourceReader.cs
- COM2EnumConverter.cs
- IdentifierCreationService.cs
- Renderer.cs
- DocumentCollection.cs
- AdCreatedEventArgs.cs
- EntityModelBuildProvider.cs
- ThreadPoolTaskScheduler.cs
- BitVec.cs
- StateMachineTimers.cs
- EdmRelationshipRoleAttribute.cs
- SocketException.cs
- HtmlTableCell.cs
- HwndMouseInputProvider.cs
- UnitySerializationHolder.cs
- BuildProviderCollection.cs
- FunctionQuery.cs
- RequiredFieldValidator.cs
- StreamWriter.cs
- SoapSchemaExporter.cs
- OleDbTransaction.cs
- Completion.cs
- ExpressionQuoter.cs
- SelectionItemProviderWrapper.cs
- SafeNativeMethods.cs
- StrongNameKeyPair.cs
- Delay.cs
- PublisherIdentityPermission.cs
- ProviderException.cs
- TypeExtensionConverter.cs
- GlyphRun.cs
- BamlTreeMap.cs
- IntellisenseTextBox.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- CustomWebEventKey.cs
- CellTreeSimplifier.cs
- FileVersionInfo.cs
- SpeechRecognitionEngine.cs
- ValidationPropertyAttribute.cs
- Rect3D.cs
- PaperSource.cs
- Context.cs
- DateTimeUtil.cs
- TreeNodeEventArgs.cs
- TextMetrics.cs