NInject对GetHashCode的假设是什么?

时间:2012-10-18 15:35:29

标签: ninject

Ninject使用ActivationCacheStrategy策略,该策略只是将对象存储在哈希映射中。这意味着该对象的GetHashCode方法必须可用。我的情况类似于以下情况:

var something = kernel.Get<ISomething>();
something.Load() { 

其中包括:

var objectA = kernel.Get<IFoobar>();
objectA.Init(...);

var objectB = kernel.Get<IFoobar>();
objectB.Init(...)

问题是在调用Init之前,objectA的GetHashCode不可用。似乎Ninject假定GetHashCode在对象完全激活之前可用。

我的问题是这个行为是否打算,如果是,那么预期的解决方案是什么。我当然可以在我的内核中添加一个非缓存的激活缓存(删除默认值),但这感觉不对。

0 个答案:

没有答案