我有一个与 ASP.NET 的工作原理更相关的问题,我会尽力解释,所以在这里。
我的应用程序中有一个四层架构
- Web(ASP.NET Web 应用程序)
- 业务(类库)
- 通用 CRUD 层**(类库)
- 数据(类库)
我的这个通用 CRUD 层使用反射来设置和读取对象的属性,但是我读到使用 PropertyInfo 相当昂贵,因此想要缓存这些项目。
这是场景:
有两个人访问该站点,我们称他们为 Fred 和 Jim。Fred 创建了一个 Customer,该 Customer 依次调用 Generic CRUD 层并在 System.RuntimeCache 中缓存 Customer 类的属性信息。Jim,几秒钟后也创建了一个客户。
我的问题是 Fred 和 Jim 的两个请求是否会导致获取财产信息被触发两次?还是 ASP.NET 第二次从缓存中检索它,即 Jim 的请求更快,因为属性信息是通过缓存获取的?
我的想法是,因为我的 CRUD 是一个类库并且无法访问 System.Web.Cache,所以不会在所有会话/用户中缓存属性信息?