Autofac配置验证

Jul*_*anM 10 configuration autofac

Autofac是否与StructureMap的AssertConfigurationIsValid方法等效?或者在创建容器时是否进行配置验证?

我相信AssertConfigurationIsValid方法检查容器是否可以创建所有已配置的服务.显然,它无法获得更多微妙的配置错误 - 例如与范围有关 - 但是知道我们正在尽我们所能来防止可能在运行时出现的问题会很好.

Pet*_*old 7

我不认为Autofac有验证,如果无法解析服务,则会在运行时抛出异常.它可能会有用,但我总是倾向于编写单元测试来验证我的容器,或者说我的模块,包含我期望它拥有的那些服务.单元测试不仅可以弥补容器验证的不足.

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

  1. 使用正在测试的模块创建容器
  2. 对于每个所需的服务,测试 container.IsRegistered
  3. 尽可能测试 container.Resolve