背景:我想向其他一些开发人员分发一个库(类似于 SDK 或抽象一些内部 Web 服务的工具包)。我使用 Autofac 来注入不同版本的底层服务,主要用于存根。我想将此程序集分发给广泛的开发人员:了解 IoC 的用户和不了解 IoC 的用户。
对于任何精明的开发人员,他们可以创建自己的实现来注入。否则,开发人员应该能够使用没有配置的程序集,并且永远不知道或关心 IoC 正在幕后发生。
有趣的东西:我可以为 Autofac 提供 Xml 配置,或者我可以以编程方式配置组件(后者是首选方法)。在这种情况下,直到运行时我才知道配置了什么,因此可能需要 Xml 配置。有没有办法让 Autofac 使用 Xml 配置(如果存在),如果没有提供则忽略它?
注意:我可以通过检查特定部分(“autofac”)的配置来手动实现这一点;如果它不存在,那么不要打电话
builder.RegisterModule(new ConfigurationSettingsReader());
有没有比手动检查配置更好的方法(最好是隐藏在 Autofac 中的神奇东西,因为它似乎可以做任何你要求的事情!)