DryIOC容器内容

时间:2015-09-18 17:02:03

标签: dryioc

StructureMap在Container类上有一个名为WhatDoIHave()

的超级有用的调试方法

它显示容器中的每个类型及其生命周期,guid和一堆其他信息。它对调试很有用。

这里有一些信息:

http://jeremydmiller.com/2014/02/18/structuremap-3-is-gonna-tell-you-whats-wrong-and-where-it-hurts/

DryIOC是否具有等效的调试功能?

1 个答案:

答案 0 :(得分:1)

(我是DryIoc的创造者)。

您可以使用container.GetServiceRegistrations()获取@ fyodor-soikin建议的注册信息。

但是在最新版本( 2.0.0-rc3build339 )中,我添加了VerifyResolutions方法,可以帮助您诊断潜在的解决方案问题,包括缺少注册。这里的维基explaining it

来自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);

验证结果是ServiceRegistrationInfoContainerException KeyValuePairs的数组。在此示例中,注册信息将为:

  

MyNamespace.MyService注册为工厂{ID = 14,ImplType = MyNamespace.MyService}

例外情况将是:

  

DryIoc.ContainerException:无法将MyNamespace.RequiredDependency解析为参数&#34; d&#34;    在MyNamespace.MyService中。
  未找到服务注册的地方    和Rules.FallbackContainers的数量:0
   和Rules.UnknownServiceResolvers:0

的数量

<强>更新

该功能在最新稳定版DryIoc 2.0.0中可用。