7

我有一组核心库,可以“开箱即用”地交付和工作。这意味着服务都在内部连接起来。我希望能够修改核心库(不修改库本身)。

话虽如此,SimpleInjector 中是否有 Unbind/Rebind 支持?我没有在容器上看到任何公开可见的方法。我确实找到了一本可以通过反思获得的私人注册词典。

有没有人看到我不能在运行时通过反射从这个私有字典中删除项目(然后重新添加)的原因?有没有我错过的方法?

4

1 回答 1

5

无法删除注册。然而,压倒一切的注册是。您必须标记容器以允许这样做:

var container = new Container();

container.Register<IService, FirstService>();

container.Options.AllowOverridingRegistrations = true;

// Replaces the former registration
container.Register<IService, AnotherService>();
于 2013-01-29T14:56:51.287 回答