在自定义RouteTable.Routes.GetReadLock()
类中覆盖GetVirtualPath
方法时,我对Route
的使用存在一些误解。
有两种情况您无需调用GetReadLock: RouteCollection类的公共方法,例如 GetVirtualPath 和 GetRouteData 在内部调用GetReadLock。因此,你没有 在调用公共方法时显式调用GetReadLock RouteCollection类从集合中检索数据。
由于我正在覆盖GetVirtualPath
和GetRouteData
,似乎不会有任何问题
internall调用 ,除非我这样做。
在。NET 3.5 中,以下行顺利运行:
using (RouteTable.Routes.GetReadLock())
{
// iteration over the Routes
}
在 .NET 4.5 中,我收到此错误:
Recursive read lock acquisitions not allowed in this mode.
所以问题是:
感谢您分享经验!