StructureMap对容器类有一个超级有用的调试方法,名为WhatDoIHave()
它显示容器中的每一种类型以及它的生命周期、guid和其他一些信息。它对调试很有用。
这里有一些信息:
http://jeremydmiller.com/2014/02/18/structuremap-3-is-gonna-tell-you-whats-wrong-and-where-it-hurts/
DryIOC是否具有等效的调试功能?
发布于 2015-10-26 08:30:04
(我是DryIoc的创造者)。
你可以使用container.GetServiceRegistrations()获得注册信息,就像@fyodor建议的那样。
但是在最新版本的(2.0.0-rc3build339)中,我添加了VerifyResolutions方法,可以帮助您诊断潜在的解决问题,包括缺少注册。这里是维基解释它。
来自wiki的示例:
// Given following SUT
public class RequiredDependency {}
public class MyService { public MyService(RequiredDependency d) {} }
// Let's assume we forgot to register RequiredDependency
var container = new Container();
container.Register<MyService>();
// Find what's missing
var results = container.VerifyResolutions();
Assert.AreEqual(1, results.Length);验证结果是ServiceRegistrationInfo和ContainerException KeyValuePairs数组。在本例中,注册信息将是:
MyNamespace.MyService注册为工厂{ID=14,ImplType=MyNamespace.MyService}
例外情况是:
DryIoc.ContainerException:无法将MyNamespace.RequiredDependency解析为MyNamespace.MyService中的参数"d“。 在没有发现服务注册的情况下 Rules.FallbackContainers数:0 Rules.UnknownServiceResolvers数:0
更新:
该功能可在最新的稳定DryIoc 2.0.0中使用。
https://stackoverflow.com/questions/32657412
复制相似问题