ScriptReferenceBase.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK