HttpContext.Current.Items.TryGetValue由于其保护级别而无法访问
本文关键字:访问 保护 Items Current TryGetValue 于其 HttpContext | 更新日期: 2023-09-27 18:05:29
.Net 4.5 MVC 5应用程序。
我想在HttpContext.Current.Items上使用TryGetValue,但我收到错误DictionaryExtensions.TryGetValue…由于其保护级别而无法访问。
我错过了什么?
如果键不存在,则HttpContext.Current.Items[key]返回null,因此不需要TryGetValue方法。
HttpContext.Current.Items是一个IDictionaryTryGetValue是Dictionary((上的一个方法。
在底层库中,似乎有人为此目的在IDictionary上创建了自己的扩展方法,但它必须是一个内部类。
用正确的类型转换为Dictionary,应该没问题。
您没有丢失任何引用,只是TryGetValue是仅在Dictionary 类型上可用的方法
HttpContext的Items集合是基于IDictionary的键值集合,它在单个HTTPRequest中共享。即HttpContext.Current.Items正在返回IDictionary。对于intellisense来说,它没有任何已知的类型来了解这个方法;
您可能需要按以下方式使用它。
HttpContext.Current.Items["ModuleInfo"] = "Custom Module Info”
string contextData = (string)(HttpContext.Current.Items["ModuleInfo"]);