title: Completely Unable to Define the UpdateCallback of System.Runtime.Caching
body: <p>I'm having a difficult time using the <em>CacheEntryUpdateCallback</em> delegate of the <em>System.Runtime.Caching</em> library. Whenever I define and set the callback, I get an ArgumentException that the "CacheItemUpdateCallback must be null". Why must it be null? I should be able to set this and then get the callback.</p>
  
  <p>I do not get this when using the <em>CacheEntryRemovedCallback</em> delegate. I can reliably reproduce this in all of my projects. Am I doing something wrong? Here's a small sample application:</p>
  
  <pre><code>using System.Runtime.Caching;
  class Program {
    static void Main(string[] args) {
      var policy = new CacheItemPolicy();
      policy.SlidingExpiration = TimeSpan.FromSeconds(10);
  
      // this works
      //policy.RemovedCallback = Removed;
  
      // this creates the exception
      policy.UpdateCallback = Update;
  
      MemoryCache.Default.Add("test", "123", policy);
      Console.Read();
    }
  
    static void Update(CacheEntryUpdateArguments arguments) { }
    static void Removed(CacheEntryRemovedArugments arguments) { }
  }
  </code></pre>