题
我有一堆在Autofac中注册的类型,而且一些依赖项相当深。是否有内置的方法来测试我可以解决所有注册类型?我希望在应用程序启动时快速失败,而不是在几分钟后失败。
这就是我目前正在做的事情,似乎有效,但我仍然想知道是否有更好的方法。
public void VerifyAllRegistrations()
{
foreach (IComponentRegistration registration in _container.ComponentRegistrations)
{
bool isNewInstance;
registration.ResolveInstance(_container, new Parameter[0], new Disposer(), out isNewInstance);
}
}
private class Disposer : IDisposer
{
public void Dispose()
{
// no-op
}
public void AddInstanceForDisposal(IDisposable instance)
{
instance.Dispose();
}
}
解决方案
Autofac不会提供任何相应的效果 - 因为Autofac会根据ResolveInstance创建组件,您将面临构造函数的副作用等。
集成测试是解决此问题的最佳方法。
不隶属于 StackOverflow