1

假设我在 OpenRasta 的依赖解析器中注册了一些实例,使用

resolver.AddDependencyInstance(IInterface, instance, DependencyLifetime.Singleton)

现在,如果我想稍后交换该实例,例如从数据库中重新读取新数据,那么对 resolver.AddDependencyInstance 的另一个调用是否正确?

检查 InternalDependencyResolver 实现,似乎没问题。但是我问是因为没有定义行为(在我检查过的openrasta的源代码中),并且方法前缀“Add”暗示了不同的行为。

4

1 回答 1

1

如果您必须在某些时候交换实例,我不会使用 Singleton。使用 DependencyLifetime.Transient 并在需要新实例的类中注入构造函数

于 2011-12-22T14:01:39.613 回答