在 asp.net 中创建静态对象列表
Posted
技术标签:
【中文标题】在 asp.net 中创建静态对象列表【英文标题】:Creating a list of static objects in asp.net 【发布时间】:2012-02-25 00:32:28 【问题描述】:是否可以检索在当前 appdomain 中创建的所有静态对象?我正在尝试为现有的 asp.net 网站编写一个调试页面。它在基于单例对象的缓存中保存了大量信息。
谢谢
【问题讨论】:
【参考方案1】:以下是帮助您入门的内容:
IList<Assembly> assemblies = AppDomain.CurrentDomain.GetAssemblies();
List<Type> allTypes = new List<Type>();
foreach (Assembly assembly in assemblies)
var types = from t in assembly.GetTypes()
where bootStrapperType.IsAssignableFrom(t)
&& !t.IsInterface && !t.IsAbstract
select t;
allTypes.AddRange(types);
foreach(Type type in allTypes)
var fieldsPublic = type.GetFields(BindingFlags.Public|BindingFlags.Static);
foreach(var field in fieldsPublic)
var nameAndValue = field.Name + " = " + field.GetValue(null);
// Do something
var fieldsPrivate = type.GetFields(BindingFlags.Private|BindingFlags.Static);
foreach(var field in fieldsPrivate)
var nameAndValue = field.Name + " = " + field.GetValue(null);
// Do something.
【讨论】:
谢谢 - 这为我指明了正确的方向。为了从结果中删除常量,我还需要检查 field.IsLiteral【参考方案2】:我之前遇到过this 和this。您需要知道包含这些静态字段的类型。但是您可以遍历所有已加载的程序集,例如 this 并检查每种类型。
【讨论】:
虽然理论上这可以回答这个问题(顺便说一句,它没有回答),it would be preferable 在这里包含答案的基本部分,并提供参考链接。以上是关于在 asp.net 中创建静态对象列表的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 中创建 CheckBoxListFor 扩展方法?
使用 C# 在 ASP.NET MVC 3 中创建级联下拉列表的最简单方法
将 jQuery JSON 对象保存到 SQL 表中,而无需在 MVC ASP.NET Core 中创建视图模型类
win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE