SqlDataSourceCache.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / SqlDataSourceCache.cs / 2 / SqlDataSourceCache.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 
namespace System.Web.UI {
 
    using System.Collections; 
    using System.ComponentModel;
    using System.Web.Caching; 


    internal sealed class SqlDataSourceCache : DataSourceCache {
 
        internal const string Sql9CacheDependencyDirective = "CommandNotification";
 
 
        /// 
        /// A semi-colon delimited string indicating which databases to use for the dependency in the format "database1:table1;database2:table2". 
        /// 
        public string SqlCacheDependency {
            get {
                object o = ViewState["SqlCacheDependency"]; 
                if (o != null)
                    return (string)o; 
                return String.Empty; 
            }
            set { 
                ViewState["SqlCacheDependency"] = value;
            }
        }
 

#if !FEATURE_PAL // FEATURE_PAL does not fully enable SQL dependencies 
        ///  
        /// Saves data to the ASP.NET cache using the specified key.
        ///  
        protected override void SaveDataToCacheInternal(string key, object data, CacheDependency dependency) {
            string sqlCacheDependency = SqlCacheDependency;
            // Here we only create cache dependencies for SQL Server 2000 and
            // earlier that use a polling based mechanism. For SQL Server 2005 
            // and after, the data source itself creates the SqlCacheDependency
            // and passes it in as a parameter. 
            if (sqlCacheDependency.Length > 0 && !String.Equals(sqlCacheDependency, Sql9CacheDependencyDirective, StringComparison.OrdinalIgnoreCase)) { 
                // Call internal helper method to parse the dependency list
                CacheDependency sqlDependency = System.Web.Caching.SqlCacheDependency.CreateOutputCacheDependency(sqlCacheDependency); 

                if (dependency != null) {
                    // There was another dependency passed in, aggregate them
                    AggregateCacheDependency aggregateDependency = new AggregateCacheDependency(); 
                    aggregateDependency.Add(sqlDependency, dependency);
                    dependency = aggregateDependency; 
                } 
                else {
                    // No other dependencies, just the SQL one 
                    dependency = sqlDependency;
                }
            }
            base.SaveDataToCacheInternal(key, data, dependency); 
        }
#endif // !FEATURE_PAL 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

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