可能是依赖注入的好地方。像StructureMap这样的库允许您在 web.config 中定义类型映射(我假设每个站点都有一个 web.config)
所以,如果你有RedController
和BlueController
,它们都实现了一个通用接口IColourfulController
,它看起来像这样:
<!-- red web.config-->
<DefaultInstance
PluginType="IColourfulController, [assembly name]"
PluggedType="RedController, [assembly name]" />
<!-- blue web.config-->
<DefaultInstance
PluginType="IColourfulController, [assembly name]"
PluggedType="BlueController, [assembly name]" />
// when you need the controller
IColourfulController controller =
ObjectFactory.GetInstance<IColourfulController>();
两个站点都可以使用相同的代码来获取控制器,但 web.config 说明它是蓝色还是红色。