title: How caching detect complex object changes and update cache data efficiently
body: <p>Default ASP.NET use in memory cache so it looks like it use Dictionary&lt;&gt; internally to use key-value pairs. But external caching solutions like Azure cache or others serialize data which makes scenarious different that in memory solution. At below example, i hold List object with key and i update it.</p>
  <pre><code>var users = new List&lt;User&gt;();
  HttpContext.Cache.Insert(&quot;key&quot;, users);
  users.Add(new User());//cached list will update itself with this insertion ?
  var cachedUsers = (List&lt;User&gt;) HttpContext.Cache[&quot;key&quot;];// now i got users list object reference or copied users list without inserted user ?
  </code></pre>
  <p>As i commented on lines, if this scenario use default in memory cache solution of ASP.NET so it is clear that cache holds users list reference but answers are changing if i use external Cache solution like Azure cache solution. What are answers of below questions if external solution is used which serialize objects instead of caching object references ?</p>
  <blockquote>
  <p>Cached list will update itself with that insertion ?</p>
  <p>if i get back data from cache,it would be users list object reference or copied users list without inserted user ?</p>
  </blockquote>