Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MVC-ControllerTypeCache.xml in MVC

Tags:

asp.net-mvc

While debugging ASP.NET MVC source i found "MVC-ControllerTypeCache.xml" file is used. But i am not able to understand the use of this file.I mean where is this file stored? How asp.net MVc makes use of this file? Please help.

like image 477
Niraj Choubey Avatar asked Jan 27 '12 10:01

Niraj Choubey


1 Answers

The file is used to cache controller types to avoid expensive reflection lookups. It is dynamically generated and stored in the c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\NAMEOFYOURAPP\xxxxx\xxxxxxxx\UserCache\ folder.

It's handled by the TypeCacheUtil internal class that you could find in the TypeCacheUtil.cs in the ASP.NET MVC source code.

Here's an example of how this file might look like:

<?xml version="1.0" encoding="utf-8"?>
<!--This file is automatically generated. Please do not modify the contents of this file.-->
<typeCache lastModified="04/01/2012 16:35:03" mvcVersionId="3cff62e5-ef21-4e58-897f-d0f1eafd3beb">
  <assembly name="Custom.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null">
    <module versionId="0bd9573a-7a89-4eab-b33d-cc92573fc2ba">
      <type>APPNAME.Controllers.BaseController</type>
    </module>
  </assembly>
  <assembly name="APPNAME.BusinessLogic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
    <module versionId="3fb0cce6-10dd-43d3-a44c-00046017b574">
      <type>APPNAME.BusinessLogic.Controllers.AssetsController</type>
      <type>APPNAME.BusinessLogic.Controllers.HomeController</type>
    </module>
  </assembly>
  <assembly name="MvcContrib, Version=2.0.36.0, Culture=neutral, PublicKeyToken=null">
    <module versionId="889dd733-c7a0-4ae6-8f50-934f417174ea">
      <type>MvcContrib.PortableAreas.EmbeddedResourceController</type>
      <type>MvcContrib.SubController</type>
    </module>
  </assembly>
</typeCache>

There's also the MVC-AreaRegistrationTypeCache.xml which is used to cache areas.

like image 132
Darin Dimitrov Avatar answered Nov 13 '22 15:11

Darin Dimitrov