Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@ -0,0 +1,50 @@
// <copyright file="DependencyChangeMonitor.cs" company="Microsoft">
// Copyright (c) 2009 Microsoft Corporation. All rights reserved.
// </copyright>
#if USE_MEMORY_CACHE
using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Caching;
using System.Web.Util;
namespace System.Web.Caching {
internal sealed class DependencyChangeMonitor: ChangeMonitor, ICacheDependencyChanged {
private CacheDependency _dependency;
public override string UniqueId {
get {
return _dependency.GetUniqueID();
}
}
internal DependencyChangeMonitor(CacheDependency dependency) {
if (dependency == null) {
throw new ArgumentNullException("dependency");
}
if (!dependency.Use()) {
throw new InvalidOperationException(
SR.GetString(SR.Cache_dependency_used_more_that_once));
}
_dependency = dependency;
_dependency.SetCacheDependencyChanged(this);
if (_dependency.HasChanged) {
OnChanged(null);
}
InitializationComplete();
}
void ICacheDependencyChanged.DependencyChanged(Object sender, EventArgs e) {
OnChanged(null);
}
[SuppressMessage("Microsoft.Usage", "CA2215:DisposeMethodsShouldCallBaseClassDispose", Justification="suppressed because fxcop is suffering from despotism")]
protected override void Dispose(bool disposing) {
if (disposing) {
if (_dependency != null) {
_dependency.DisposeInternal();
}
}
}
}
}
#endif