【问题标题】:DryIOC Container ContentsDryIOC 容器内容物
【发布时间】:2015-09-18 17:02:03
【问题描述】:

StructureMap 在 Container 类上有一个超级有用的调试方法,叫做 WhatDoIHave()

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

这里有一些信息:

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

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

【问题讨论】:

  • 有一个方法GetServiceRegistrations。这就是你要找的东西吗?

标签: dryioc


【解决方案1】:

(我是DryIoc 的创建者)。

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

但在最新版本 (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 解析为参数“d” 在 MyNamespace.MyService.
未找到服务注册的地方
和 Rules.FallbackContainers 的数量:0
和 Rules.UnknownServiceResolvers 的数量:0

更新:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 2023-03-04
    • 2017-08-14
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多