我有以下注册码:
Component.For<IPublishingService>().ImplementedBy<UseStoredProcedureToPrintService>(),
Component.For<IConfirmationDialog<AutomatedTransaction>>().ImplementedBy<ShipmentConfirmationDialog>().Named("ShipmentConfirmationDialog"),
Component.For<IConfirmationService<AutomatedTransaction>>().ImplementedBy<SingleTransactionConfirmation>().ServiceOverrides(
ServiceOverride.ForKey("shipmentDialog").Eq("ShipmentConfirmationDialog") ),
一个要求是,在某些情况下,应用程序的行为应该有所不同。太好了,我想,这正是我开始使用温莎城堡的目的。
所以我编写了我的新组件并首先注册它们。例如,我以不同的方式实现 IPublishingService 并首先注册新的实现,以便在上面的默认实现上解析它。但是,在我别无选择只能使用 id 连接我的服务覆盖的少数情况下会出现问题。例如,如何在不修改上述代码的情况下重定向 ShipmentConfirmationDialog 的 ServiceOverride 以使用我的新 SpecialCaseShipmentConfirmationDialog 实现?
温莎城堡中有各种我不太了解的机制,比如转发和我希望能提供简单答案的 ActAs。