Configuration Autofac配置验证

Configuration Autofac配置验证,configuration,autofac,Configuration,Autofac,Autofac是否具有与StructureMap的AssertConfiguration有效方法等效的方法?还是在创建容器时进行配置验证 我相信AssertConfigurationsValid方法检查容器是否可以创建所有配置的服务。显然,它无法发现更微妙的配置错误(例如与范围有关),但如果知道我们正在尽可能多地防止运行时可能出现的问题,那就太好了。我认为Autofac没有验证,如果无法解决服务,则会在运行时引发异常。它可能很有用,但我总是倾向于编写单元测试来验证我的容器,或者更确切地说,我的容

Autofac是否具有与StructureMap的AssertConfiguration有效方法等效的方法?还是在创建容器时进行配置验证


我相信AssertConfigurationsValid方法检查容器是否可以创建所有配置的服务。显然,它无法发现更微妙的配置错误(例如与范围有关),但如果知道我们正在尽可能多地防止运行时可能出现的问题,那就太好了。

我认为Autofac没有验证,如果无法解决服务,则会在运行时引发异常。它可能很有用,但我总是倾向于编写单元测试来验证我的容器,或者更确切地说,我的容器,是否包含我期望它拥有的服务。单元测试弥补了容器验证的不足

这些测试通常遵循以下模式:

  • 使用测试中的模块创建一个容器
  • 对于每个所需的服务,测试
    container.IsRegistered
  • 尽可能测试
    容器。解决

  • 我很容易地实现了您建议的单元测试,现在对于Autofac没有内置的验证,我并不感到太难过。谢谢你出色的回答。@Serilla-很高兴听到这个消息。祝你好运在我使用工厂生成服务的情况下,如何处理这些服务?例如,我有一个服务依赖于几个其他服务和一个字符串。该字符串未在autofac中注册,我通常使用带有该字符串的工厂作为参数来解析服务。目前,我的单元测试忽略此工厂并在服务上失败,因为所需的字符串未注册。@SamuelDebruyn在这种情况下,我的测试将解析有问题的工厂,使用一些有意义的输入调用它,并验证输出。您还可以进行测试,以验证工厂在给定无效输入时是否以有意义的方式失败。