C# 调试Ninject。。。获取活动单例列表?

C# 调试Ninject。。。获取活动单例列表?,c#,debugging,singleton,ninject,C#,Debugging,Singleton,Ninject,我正在使用.NET3.5 Compact Framework上的Ninject 3 我有一个应用程序,它使用InSingletonScope()绑定了各种东西 为了进行调试,我需要知道哪些单例被实际激活。。。哪些绑定已被请求和解析,哪些单例已实际实例化 我无法获得当前活动的单例绑定列表。我也找不到一种方法来获得完整的绑定列表来迭代它们 我确实看到一篇文章提到我应该能够调用kernel.Get来获取保存实例的缓存对象,但是该调用给我一个激活异常,表示没有任何东西绑定到ICache,并且它不是自绑定

我正在使用.NET3.5 Compact Framework上的Ninject 3

我有一个应用程序,它使用
InSingletonScope()
绑定了各种东西

为了进行调试,我需要知道哪些单例被实际激活。。。哪些绑定已被请求和解析,哪些单例已实际实例化

我无法获得当前活动的单例绑定列表。我也找不到一种方法来获得完整的绑定列表来迭代它们

我确实看到一篇文章提到我应该能够调用
kernel.Get
来获取保存实例的缓存对象,但是该调用给我一个激活异常,表示没有任何东西绑定到ICache,并且它不是自绑定的。注意,在我知道已经创建了一个单例之后,我正在尝试检索ICache对象,所以这并不是像还没有创建实例那样愚蠢的事情

这是一个非常简单的配置。它是一个单独的模块,加载了大约十几个映射,所有映射都用
InSingletonScope()
映射到相应的接口。我只需要得到实际实例化的内容的列表

是否有某种方法可以获取当前加载的单例绑定列表?同样,这仅用于调试目的


感谢您的帮助。

ICache
已注册为ninject组件
IKernel.Components.Get()
应该可以做到这一点

没有“简单的开箱即用”的方法来检索绑定或所有激活的单例。 但是,
ICache
应该包含对所有单例的引用,因此您应该能够从那里检索实例单例

但是您需要使用反射,因为缓存的值是不可公开访问的