Kernel.Get()线程安全吗?我的目标是在我的所有组件中共享我的内核实例,他们可能会在不同的线程上同时调用Kernel.Get().
Kernel.Get()线程安全吗?
在所有位于不同dll中的应用程序组件之间共享应用程序内核的最佳模式是什么?如果这是有意义的,我不希望将工厂的实例传递给我的应用程序的每个组件.
Rem*_*oor 14
Get是线程安全的,但创建新的内核实例(ctor)目前不是线程安全的.
通常,您应该尽量将对内核的访问权限降至最低.在任何地方访问内核表单是一个非常糟糕的设计,使您的代码更不可重用.请参阅服务定位器反模式
您访问内核的唯一情况应该是:
在所有情况下,将对内核的访问限制为复合根,并将工厂(类或Func<T>
)注入需要在运行时创建对象的类.即使您不喜欢这样做,给这些工厂访问内核的最佳方法仍然是构造函数注入.或者使用Func<T>
(Ninject是否支持Func(自动生成的工厂)?).
归档时间: |
|
查看次数: |
1964 次 |
最近记录: |