更好的是:通过HttpContext.Current.Cache缓存还是只是静态?

Kee*_*ker 5 c# asp.net asp.net-mvc ihttpmodule

昨晚我写了我的第一个IHttpModule请求处理.我正在使用正则表达式来检查原始URL.该IHttpModule会呼吁每个请求,所以它似乎是合理的做一些正则表达式对象的缓存,以防止对每个请求它的创建.

现在我的问题是...什么是更好的:使用HttpContext.Current.Cache存储实例化的对象或private static Regex在我的模块中使用?

我期待着原因.只是为了澄清:正则表达式永远不会改变,因此永远是同一件事.

Mar*_*ell 11

如果正则表达式不会改变(通常不会改变),那么:

private static readonly Regex pattern = new Regex("...", RegexOptions.Compiled);
Run Code Online (Sandbox Code Playgroud)

在各方面都是最快,最有效的

  • @Aliostad - 没有.因为它是类的静态属性,所以在首次引用类时将重新创建它. (3认同)