#endif
void OnChanged (object sender, FileSystemEventArgs args)
+ {
+ OnDependencyChanged (sender, args);
+ }
+
+ bool DoOnChanged ()
{
if (DateTime.Now < start)
- return;
+ return false;
hasChanged = true;
#if NET_2_0
utcLastModified = DateTime.UtcNow;
if (cache != null)
cache.CheckExpiration ();
+
+ return true;
}
-
+
void DisposeWatchers ()
{
lock (locker) {
DependencyDispose ();
}
+#if NET_2_0
+ internal virtual void DependencyDisposeInternal ()
+ {
+ }
+#endif
+
#if NET_2_0
protected virtual
#endif
void DependencyDispose ()
{
+#if NET_2_0
+ DependencyDisposeInternal ();
+#endif
DisposeWatchers ();
if (dependency != null)
dependency.DependencyChanged -= new EventHandler (OnChildDependencyChanged);
{
this.utcLastModified = utcLastModified;
}
-
#endif
public bool HasChanged {
void OnDependencyChanged (object sender, EventArgs e)
{
- if (DependencyChanged != null)
- DependencyChanged (sender, e);
+ if (!DoOnChanged ())
+ return;
+
+ if (DependencyChanged == null)
+ return;
+
+ foreach (EventHandler eh in DependencyChanged.GetInvocationList ())
+ eh (sender, e);
}
#if NET_2_0