我想在给定的Windsor容器中重新定义(默认)实现。那是OverWrite的目的吗?但是不起作用。

container.Register(
                    Component.For<IServiceOperationAuthorization>()
                            .OverWrite()
                            .Instance(_authorization)
                    );


还有其他想法吗?

干杯,
拉尔斯

最佳答案

您可以非常简单地在需要覆盖默认实现的位置执行此操作。这是我们集成测试的一个例子。现在已经注册了这两种实现,但是您的代码将使用默认的一种,即您刚注册的一种。像炸弹一样工作,对其余应用程序没有任何影响:

        var sendMailStub = MockRepository.GenerateStub<ISendMail>();
        _container.Register(
            Component
                .For<ISendMail>()
                .Instance(sendMailStub)
                .IsDefault()
            );

09-06 05:23