Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs
diff options
context:
space:
mode:
authorMarek Habersack <grendel@twistedcode.net>2010-01-22 01:30:21 +0300
committerMarek Habersack <grendel@twistedcode.net>2010-01-22 01:30:21 +0300
commitb315e2df14a6b3345e7efc15f5e9e3ff03a1c1f1 (patch)
tree2b271b7baab931caff471d0e810daae6937ef896 /mcs
parent4e5ea856351db8f7d2714024f4bcc1a375577197 (diff)
2010-01-21 Marek Habersack <mhabersack@novell.com>
* FileResponseElementTest.cs, HeaderElementTest.cs, MemoryResponseElementTest.cs, SubstitutionResponseElementTest.cs: added 2010-01-21 Marek Habersack <mhabersack@novell.com> * DatabaseNotEnabledForNotificationException.cs, OutputCache.cs, FileResponseElement.cs, HeaderElement.cs, IOutputCacheEntry.cs, MemoryResponseElement.cs, OutputCacheProvider.cs, ResponseElement.cs, OutputCacheProviderCollection.cs, SubstitutionResponseElement.cs, TableNotEnabledForNotificationException.cs: added * CacheDependency.cs: default constructor is protected in 4.0 svn path=/trunk/mcs/; revision=150025
Diffstat (limited to 'mcs')
-rw-r--r--mcs/class/System.Web/System.Web.Caching/CacheDependency.cs9
-rw-r--r--mcs/class/System.Web/System.Web.Caching/ChangeLog11
-rw-r--r--mcs/class/System.Web/System.Web.Caching/DatabaseNotEnabledForNotificationException.cs49
-rw-r--r--mcs/class/System.Web/System.Web.Caching/FileResponseElement.cs67
-rw-r--r--mcs/class/System.Web/System.Web.Caching/HeaderElement.cs58
-rw-r--r--mcs/class/System.Web/System.Web.Caching/IOutputCacheEntry.cs38
-rw-r--r--mcs/class/System.Web/System.Web.Caching/MemoryResponseElement.cs59
-rw-r--r--mcs/class/System.Web/System.Web.Caching/OutputCache.cs68
-rw-r--r--mcs/class/System.Web/System.Web.Caching/OutputCacheProvider.cs43
-rw-r--r--mcs/class/System.Web/System.Web.Caching/OutputCacheProviderCollection.cs60
-rw-r--r--mcs/class/System.Web/System.Web.Caching/ResponseElement.cs38
-rw-r--r--mcs/class/System.Web/System.Web.Caching/SubstitutionResponseElement.cs51
-rw-r--r--mcs/class/System.Web/System.Web.Caching/TableNotEnabledForNotificationException.cs49
-rw-r--r--mcs/class/System.Web/System.Web.dll.sources2
-rw-r--r--mcs/class/System.Web/System.Web_test.dll.sources5
-rw-r--r--mcs/class/System.Web/Test/System.Web.Caching/ChangeLog6
-rw-r--r--mcs/class/System.Web/Test/System.Web.Caching/FileResponseElementTest.cs73
-rw-r--r--mcs/class/System.Web/Test/System.Web.Caching/HeaderElementTest.cs71
-rw-r--r--mcs/class/System.Web/Test/System.Web.Caching/MemoryResponseElementTest.cs77
-rw-r--r--mcs/class/System.Web/Test/System.Web.Caching/SubstitutionResponseElementTest.cs64
-rw-r--r--mcs/class/System.Web/net_4_0_System.Web.dll.sources9
21 files changed, 905 insertions, 2 deletions
diff --git a/mcs/class/System.Web/System.Web.Caching/CacheDependency.cs b/mcs/class/System.Web/System.Web.Caching/CacheDependency.cs
index a7ff431fb7d..8a19612ccb0 100644
--- a/mcs/class/System.Web/System.Web.Caching/CacheDependency.cs
+++ b/mcs/class/System.Web/System.Web.Caching/CacheDependency.cs
@@ -55,8 +55,13 @@ namespace System.Web.Caching
add { events.AddHandler (dependencyChangedEvent, value); }
remove { events.RemoveHandler (dependencyChangedEvent, value); }
}
-
- public CacheDependency (): this (null, null, null, DateTime.Now)
+
+#if NET_4_0
+ protected
+#else
+ public
+#endif
+ CacheDependency (): this (null, null, null, DateTime.Now)
{
}
diff --git a/mcs/class/System.Web/System.Web.Caching/ChangeLog b/mcs/class/System.Web/System.Web.Caching/ChangeLog
index fbc14e44453..2088bf0b08a 100644
--- a/mcs/class/System.Web/System.Web.Caching/ChangeLog
+++ b/mcs/class/System.Web/System.Web.Caching/ChangeLog
@@ -1,3 +1,14 @@
+2010-01-21 Marek Habersack <mhabersack@novell.com>
+
+ * DatabaseNotEnabledForNotificationException.cs, OutputCache.cs,
+ FileResponseElement.cs, HeaderElement.cs, IOutputCacheEntry.cs,
+ MemoryResponseElement.cs, OutputCacheProvider.cs,
+ ResponseElement.cs, OutputCacheProviderCollection.cs,
+ SubstitutionResponseElement.cs,
+ TableNotEnabledForNotificationException.cs: added
+
+ * CacheDependency.cs: default constructor is protected in 4.0
+
2010-01-06 Marek Habersack <mhabersack@novell.com>
* CacheItemPriorityQueue.cs: make sure lastParent is never null if
diff --git a/mcs/class/System.Web/System.Web.Caching/DatabaseNotEnabledForNotificationException.cs b/mcs/class/System.Web/System.Web.Caching/DatabaseNotEnabledForNotificationException.cs
new file mode 100644
index 00000000000..2f731e3e8d3
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/DatabaseNotEnabledForNotificationException.cs
@@ -0,0 +1,49 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Caching
+{
+ [Serializable]
+ [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+ public sealed class DatabaseNotEnabledForNotificationException : SystemException
+ {
+ public DatabaseNotEnabledForNotificationException ()
+ {}
+
+ public DatabaseNotEnabledForNotificationException (string message)
+ : base (message)
+ {}
+
+ public DatabaseNotEnabledForNotificationException (string message, Exception innerException)
+ : base (message, innerException)
+ {}
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/FileResponseElement.cs b/mcs/class/System.Web/System.Web.Caching/FileResponseElement.cs
new file mode 100644
index 00000000000..bbc4b57526e
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/FileResponseElement.cs
@@ -0,0 +1,67 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Caching
+{
+ [Serializable]
+ [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Unrestricted)]
+ public class FileResponseElement : ResponseElement
+ {
+ public long Length {
+ get;
+ private set;
+ }
+
+ public long Offset {
+ get;
+ private set;
+ }
+
+ public string Path {
+ get;
+ private set;
+ }
+
+ public FileResponseElement (string path, long offset, long length)
+ {
+ if (path == null)
+ throw new ArgumentNullException ("path");
+ if (offset < 0)
+ throw new ArgumentOutOfRangeException ("offset", "is less than zero.");
+ if (length < 0)
+ throw new ArgumentOutOfRangeException ("length", "is less than zero.");
+
+ this.Length = length;
+ this.Offset = offset;
+ this.Path = path;
+ }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/HeaderElement.cs b/mcs/class/System.Web/System.Web.Caching/HeaderElement.cs
new file mode 100644
index 00000000000..96c5bad70d6
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/HeaderElement.cs
@@ -0,0 +1,58 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace System.Web.Caching
+{
+ [Serializable]
+ public sealed class HeaderElement
+ {
+ public string Name {
+ get;
+ private set;
+ }
+
+ public string Value {
+ get;
+ private set;
+ }
+
+ public HeaderElement (string name, string value)
+ {
+ // LAMESPEC: empty string in name is accepted
+ if (name == null)
+ throw new ArgumentNullException ("name");
+ if (value == null)
+ throw new ArgumentNullException ("value");
+
+ this.Name = name;
+ this.Value = value;
+ }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/IOutputCacheEntry.cs b/mcs/class/System.Web/System.Web.Caching/IOutputCacheEntry.cs
new file mode 100644
index 00000000000..1f788edc024
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/IOutputCacheEntry.cs
@@ -0,0 +1,38 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Collections.Generic;
+
+namespace System.Web.Caching
+{
+ public interface IOutputCacheEntry
+ {
+ List<HeaderElement> HeaderElements { get; set; }
+ List<ResponseElement> ResponseElements { get; set; }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/MemoryResponseElement.cs b/mcs/class/System.Web/System.Web.Caching/MemoryResponseElement.cs
new file mode 100644
index 00000000000..6dcd259e97f
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/MemoryResponseElement.cs
@@ -0,0 +1,59 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Caching
+{
+ [Serializable]
+ [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Unrestricted)]
+ public class MemoryResponseElement : ResponseElement
+ {
+ public byte[] Buffer {
+ get;
+ private set;
+ }
+
+ public long Length {
+ get;
+ private set;
+ }
+
+ public MemoryResponseElement (byte[] buffer, long length)
+ {
+ if (buffer == null)
+ throw new ArgumentNullException ("buffer");
+ if (length < 0 || length > buffer.Length)
+ throw new ArgumentOutOfRangeException ("length", "is less than zero or greater than the size of buffer.");
+
+ this.Buffer = buffer;
+ this.Length = length;
+ }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/OutputCache.cs b/mcs/class/System.Web/System.Web.Caching/OutputCache.cs
new file mode 100644
index 00000000000..e8454689898
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/OutputCache.cs
@@ -0,0 +1,68 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.IO;
+using System.Security.Permissions;
+using System.Web;
+using System.Web.Configuration;
+
+namespace System.Web.Caching
+{
+ public static class OutputCache
+ {
+ public static string DefaultProviderName {
+ get { throw new NotImplementedException (); }
+ }
+
+ public static OutputCacheProviderCollection Providers {
+ get { throw new NotImplementedException (); }
+ }
+
+ [SecurityPermission (SecurityAction.Assert, Flags = SecurityPermissionFlag.SerializationFormatter)]
+ public static object Deserialize (Stream stream)
+ {
+ if (stream == null)
+ throw new ArgumentNullException ("stream");
+
+ throw new NotImplementedException ();
+
+ }
+
+ [SecurityPermission (SecurityAction.Assert, Flags = SecurityPermissionFlag.SerializationFormatter)]
+ public static void Serialize (Stream stream, object data)
+ {
+ if (stream == null)
+ throw new ArgumentNullException ("stream");
+
+ if (data == null)
+ throw new ArgumentNullException ("data");
+
+ throw new NotImplementedException ();
+ }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/OutputCacheProvider.cs b/mcs/class/System.Web/System.Web.Caching/OutputCacheProvider.cs
new file mode 100644
index 00000000000..cf0534d577e
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/OutputCacheProvider.cs
@@ -0,0 +1,43 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Configuration.Provider;
+
+namespace System.Web.Caching
+{
+ public abstract class OutputCacheProvider : ProviderBase
+ {
+ protected OutputCacheProvider ()
+ {}
+
+ public abstract object Add (string key, Object entry, DateTime utcExpiry);
+ public abstract Object Get (string key);
+ public abstract void Remove (string key);
+ public abstract void Set (string key, object entry, DateTime utcExpiry);
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/OutputCacheProviderCollection.cs b/mcs/class/System.Web/System.Web.Caching/OutputCacheProviderCollection.cs
new file mode 100644
index 00000000000..3b5f733f70c
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/OutputCacheProviderCollection.cs
@@ -0,0 +1,60 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Configuration.Provider;
+
+namespace System.Web.Caching
+{
+ public sealed class OutputCacheProviderCollection : ProviderCollection
+ {
+ public OutputCacheProvider this [string name] {
+ get {
+ throw new NotImplementedException ();
+ }
+ }
+
+ public OutputCacheProviderCollection ()
+ {}
+
+ public override void Add (ProviderBase provider)
+ {
+ if (provider == null)
+ throw new ArgumentNullException ("provider");
+
+ if (!(provider is OutputCacheProvider))
+ throw new ArgumentException ("is not of type OutputCacheProvider.", "provider");
+
+ base.Add (provider);
+ }
+
+ public void CopyTo (OutputCacheProvider[] array, int index)
+ {
+ throw new NotImplementedException ();
+ }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/ResponseElement.cs b/mcs/class/System.Web/System.Web.Caching/ResponseElement.cs
new file mode 100644
index 00000000000..277527858c6
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/ResponseElement.cs
@@ -0,0 +1,38 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace System.Web.Caching
+{
+ [Serializable]
+ public abstract class ResponseElement
+ {
+ protected ResponseElement ()
+ {
+ }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/SubstitutionResponseElement.cs b/mcs/class/System.Web/System.Web.Caching/SubstitutionResponseElement.cs
new file mode 100644
index 00000000000..ec3a9fa657b
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/SubstitutionResponseElement.cs
@@ -0,0 +1,51 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Caching
+{
+ [Serializable]
+ [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Unrestricted)]
+ public class SubstitutionResponseElement : ResponseElement
+ {
+ public HttpResponseSubstitutionCallback Callback {
+ get;
+ private set;
+ }
+
+ public SubstitutionResponseElement (HttpResponseSubstitutionCallback callback)
+ {
+ if (callback == null)
+ throw new ArgumentNullException ("callback");
+
+ this.Callback = callback;
+ }
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.Caching/TableNotEnabledForNotificationException.cs b/mcs/class/System.Web/System.Web.Caching/TableNotEnabledForNotificationException.cs
new file mode 100644
index 00000000000..9fe713be2d4
--- /dev/null
+++ b/mcs/class/System.Web/System.Web.Caching/TableNotEnabledForNotificationException.cs
@@ -0,0 +1,49 @@
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// (C) 2010 Novell, Inc (http://novell.com/)
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Security.Permissions;
+using System.Web;
+
+namespace System.Web.Caching
+{
+ [Serializable]
+ [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+ public sealed class TableNotEnabledForNotificationException : SystemException
+ {
+ public TableNotEnabledForNotificationException ()
+ {}
+
+ public TableNotEnabledForNotificationException (string message)
+ : base (message)
+ {}
+
+ public TableNotEnabledForNotificationException (string message, Exception innerException)
+ : base (message, innerException)
+ {}
+ }
+}
diff --git a/mcs/class/System.Web/System.Web.dll.sources b/mcs/class/System.Web/System.Web.dll.sources
index ce2000d978b..6c24bf30e70 100644
--- a/mcs/class/System.Web/System.Web.dll.sources
+++ b/mcs/class/System.Web/System.Web.dll.sources
@@ -20,8 +20,10 @@ System.Web.Caching/CacheItemRemovedCallback.cs
System.Web.Caching/CacheItemRemovedReason.cs
System.Web.Caching/CachedRawResponse.cs
System.Web.Caching/CachedVaryBy.cs
+System.Web.Caching/DatabaseNotEnabledForNotificationException.cs
System.Web.Caching/OutputCacheModule.cs
System.Web.Caching/SqlCacheDependency.cs
+System.Web.Caching/TableNotEnabledForNotificationException.cs
System.Web/CapabilitiesLoader.cs
System.Web/BrowserCapabilities.cs
System.Web.Compilation/ApplicationFileBuildProvider.cs
diff --git a/mcs/class/System.Web/System.Web_test.dll.sources b/mcs/class/System.Web/System.Web_test.dll.sources
index 42b572055c2..99f7ba6be0a 100644
--- a/mcs/class/System.Web/System.Web_test.dll.sources
+++ b/mcs/class/System.Web/System.Web_test.dll.sources
@@ -1,3 +1,4 @@
+../../System.Web.DynamicData/Test/Common/AssertExtensions.cs
mainsoft/MainsoftWebTest/HtmlAgilityPack/AssemblyInfo.cs
mainsoft/MainsoftWebTest/HtmlAgilityPack/crc32.cs
mainsoft/MainsoftWebTest/HtmlAgilityPack/Header.cs
@@ -334,6 +335,10 @@ System.Web/TraceContextCas.cs
System.Web.Caching/AggregateCacheDependencyTest.cs
System.Web.Caching/CacheCas.cs
System.Web.Caching/CacheDependencyCas.cs
+System.Web.Caching/FileResponseElementTest.cs
+System.Web.Caching/HeaderElementTest.cs
+System.Web.Caching/MemoryResponseElementTest.cs
+System.Web.Caching/SubstitutionResponseElementTest.cs
System.Web.Configuration/HttpCapabilitiesBaseCas.cs
System.Web.Handlers/TraceHandlerCas.cs
System.Web.Hosting/AppDomainFactoryCas.cs
diff --git a/mcs/class/System.Web/Test/System.Web.Caching/ChangeLog b/mcs/class/System.Web/Test/System.Web.Caching/ChangeLog
index e7f8ac15a60..96590822182 100644
--- a/mcs/class/System.Web/Test/System.Web.Caching/ChangeLog
+++ b/mcs/class/System.Web/Test/System.Web.Caching/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-21 Marek Habersack <mhabersack@novell.com>
+
+ * FileResponseElementTest.cs, HeaderElementTest.cs,
+ MemoryResponseElementTest.cs, SubstitutionResponseElementTest.cs:
+ added
+
2008-06-27 Atsushi Enomoto <atsushi@ximian.com>
* AggregateCacheDependencyTest.cs: mark wrong, timing-
diff --git a/mcs/class/System.Web/Test/System.Web.Caching/FileResponseElementTest.cs b/mcs/class/System.Web/Test/System.Web.Caching/FileResponseElementTest.cs
new file mode 100644
index 00000000000..ee2bd412265
--- /dev/null
+++ b/mcs/class/System.Web/Test/System.Web.Caching/FileResponseElementTest.cs
@@ -0,0 +1,73 @@
+//
+// FileResponseElementTest.cs
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2010 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_4_0
+using System;
+using System.Web;
+using System.Web.Caching;
+
+using NUnit.Framework;
+using MonoTests.Common;
+
+namespace MonoTests.System.Web.Caching
+{
+ [TestFixture]
+ public class FileResponseElementTest
+ {
+ [Test]
+ public void Constructor ()
+ {
+ FileResponseElement fre;
+
+ AssertExtensions.Throws<ArgumentNullException> (() => {
+ fre = new FileResponseElement (null, 0, 0);
+ }, "#A1");
+
+ AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
+ fre = new FileResponseElement ("file.txt", -1, 0);
+ }, "#A2");
+
+ AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
+ fre = new FileResponseElement ("file.txt", 0, -1);
+ }, "#A3");
+
+ fre = new FileResponseElement (String.Empty, 0, 0);
+ Assert.AreEqual (String.Empty, fre.Path, "#B1-1");
+ Assert.AreEqual (0, fre.Length, "#B1-2");
+ Assert.AreEqual (0, fre.Offset, "#B1-3");
+
+ fre = new FileResponseElement ("file.txt", 10, 30);
+ Assert.AreEqual ("file.txt", fre.Path, "#C1-1");
+ Assert.AreEqual (30, fre.Length, "#C1-2");
+ Assert.AreEqual (10, fre.Offset, "#C1-3");
+ }
+ }
+}
+#endif \ No newline at end of file
diff --git a/mcs/class/System.Web/Test/System.Web.Caching/HeaderElementTest.cs b/mcs/class/System.Web/Test/System.Web.Caching/HeaderElementTest.cs
new file mode 100644
index 00000000000..e9e50592699
--- /dev/null
+++ b/mcs/class/System.Web/Test/System.Web.Caching/HeaderElementTest.cs
@@ -0,0 +1,71 @@
+//
+// HeaderElementTest.cs
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2010 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_4_0
+using System;
+using System.Web;
+using System.Web.Caching;
+
+using NUnit.Framework;
+using MonoTests.Common;
+
+namespace MonoTests.System.Web.Caching
+{
+ [TestFixture]
+ public class HeaderElementTest
+ {
+ [Test]
+ public void Constructor ()
+ {
+ HeaderElement he;
+
+ AssertExtensions.Throws<ArgumentNullException> (() => {
+ he = new HeaderElement (null, String.Empty);
+ }, "#A1");
+
+ AssertExtensions.Throws<ArgumentNullException> (() => {
+ he = new HeaderElement ("Header", null);
+ }, "#A2");
+
+ he = new HeaderElement ("Header", String.Empty);
+ Assert.AreEqual ("Header", he.Name, "#B1-1");
+ Assert.AreEqual (String.Empty, he.Value, "#B1-2");
+
+ he = new HeaderElement ("Header", "Value");
+ Assert.AreEqual ("Header", he.Name, "#C1-1");
+ Assert.AreEqual ("Value", he.Value, "#C1-2");
+
+ he = new HeaderElement (String.Empty, String.Empty);
+ Assert.AreEqual (String.Empty, he.Name, "#D1-1");
+ Assert.AreEqual (String.Empty, he.Value, "#D1-2");
+ }
+ }
+}
+#endif \ No newline at end of file
diff --git a/mcs/class/System.Web/Test/System.Web.Caching/MemoryResponseElementTest.cs b/mcs/class/System.Web/Test/System.Web.Caching/MemoryResponseElementTest.cs
new file mode 100644
index 00000000000..6f732dddcb8
--- /dev/null
+++ b/mcs/class/System.Web/Test/System.Web.Caching/MemoryResponseElementTest.cs
@@ -0,0 +1,77 @@
+//
+// MemoryResponseElementTest.cs
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2010 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_4_0
+using System;
+using System.Web;
+using System.Web.Caching;
+
+using NUnit.Framework;
+using MonoTests.Common;
+
+namespace MonoTests.System.Web.Caching
+{
+ [TestFixture]
+ public class MemoryResponseElementTest
+ {
+ [Test]
+ public void Constructor ()
+ {
+ MemoryResponseElement mre;
+
+ AssertExtensions.Throws<ArgumentNullException> (() => {
+ mre = new MemoryResponseElement (null, 0);
+ }, "#A1");
+
+ AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
+ mre = new MemoryResponseElement (new byte[1], -1);
+ }, "#A2");
+
+ AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
+ mre = new MemoryResponseElement (new byte[1], 2);
+ }, "#A2");
+
+ var b = new byte[0];
+ mre = new MemoryResponseElement (b, 0);
+ Assert.AreEqual (b, mre.Buffer, "#B1-1");
+ Assert.AreEqual (0, mre.Length, "#B1-2");
+
+ b = new byte[10];
+ mre = new MemoryResponseElement (b, 10);
+ Assert.AreEqual (b, mre.Buffer, "#C1-1");
+ Assert.AreEqual (10, mre.Length, "#C1-2");
+
+ mre = new MemoryResponseElement (b, 5);
+ Assert.AreEqual (b, mre.Buffer, "#D1-1");
+ Assert.AreEqual (5, mre.Length, "#D1-2");
+ }
+ }
+}
+#endif
diff --git a/mcs/class/System.Web/Test/System.Web.Caching/SubstitutionResponseElementTest.cs b/mcs/class/System.Web/Test/System.Web.Caching/SubstitutionResponseElementTest.cs
new file mode 100644
index 00000000000..e277b12f0c0
--- /dev/null
+++ b/mcs/class/System.Web/Test/System.Web.Caching/SubstitutionResponseElementTest.cs
@@ -0,0 +1,64 @@
+//
+// SubstitutionResponseElementTest.cs
+//
+// Authors:
+// Marek Habersack <mhabersack@novell.com>
+//
+// Copyright (C) 2010 Novell Inc. http://novell.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_4_0
+using System;
+using System.Web;
+using System.Web.Caching;
+
+using NUnit.Framework;
+using MonoTests.Common;
+
+namespace MonoTests.System.Web.Caching
+{
+ [TestFixture]
+ public class SubstitutionResponseElementTest
+ {
+ string TestCallback (HttpContext ctx)
+ {
+ return String.Empty;
+ }
+
+ [Test]
+ public void Constructor ()
+ {
+ SubstitutionResponseElement sre;
+
+ AssertExtensions.Throws<ArgumentNullException> (() => {
+ sre = new SubstitutionResponseElement (null);
+ }, "#A1");
+
+ var cb = new HttpResponseSubstitutionCallback (TestCallback);
+ sre = new SubstitutionResponseElement (cb);
+ Assert.AreEqual (cb, sre.Callback, "#B1");
+ }
+ }
+}
+#endif \ No newline at end of file
diff --git a/mcs/class/System.Web/net_4_0_System.Web.dll.sources b/mcs/class/System.Web/net_4_0_System.Web.dll.sources
index eb7b917667c..49c0f1d0d34 100644
--- a/mcs/class/System.Web/net_4_0_System.Web.dll.sources
+++ b/mcs/class/System.Web/net_4_0_System.Web.dll.sources
@@ -3,6 +3,15 @@
System.Web/IHtmlString.cs
System.Web/HtmlString.cs
+System.Web.Caching/FileResponseElement.cs
+System.Web.Caching/HeaderElement.cs
+System.Web.Caching/IOutputCacheEntry.cs
+System.Web.Caching/MemoryResponseElement.cs
+System.Web.Caching/OutputCache.cs
+System.Web.Caching/OutputCacheProvider.cs
+System.Web.Caching/OutputCacheProviderCollection.cs
+System.Web.Caching/ResponseElement.cs
+System.Web.Caching/SubstitutionResponseElement.cs
System.Web.SessionState_2.0/SessionStateBehavior.cs
System.Web.Routing/PageRouteHandler.cs
System.Web.UI.WebControls/IDataBoundControl.cs