4

StructureMap has a super-useful debug method on the Container class called WhatDoIHave()

It shows every type in the container along with its lifecycle, guid and a bunch of other info. It's useful for debugging.

There's some info here:

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

Does DryIOC have an equivalent debug feature?

reach4thelasers
  • 26,181
  • 22
  • 92
  • 123

1 Answers1

2

(I'm the creator of DryIoc).

You can use container.GetServiceRegistrations() to get registration infos as @fyodor-soikin suggested.

But at the latest version (2.0.0-rc3build339) I have added VerifyResolutions method that may help you to diagnose potential resolution problems, including missing registrations as well. Here the wiki explaining it.

Example from the 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);

Verify result is array of ServiceRegistrationInfo and ContainerException KeyValuePairs. In this example the registration info will be:

MyNamespace.MyService registered as factory {ID=14, ImplType=MyNamespace.MyService}

And the exception will be:

DryIoc.ContainerException: Unable to resolve MyNamespace.RequiredDependency as parameter "d" in MyNamespace.MyService.
Where no service registrations found
and number of Rules.FallbackContainers: 0
and number of Rules.UnknownServiceResolvers: 0

Update:

The functionality is available in latest stable DryIoc 2.0.0.

silkfire
  • 24,585
  • 15
  • 82
  • 105
dadhi
  • 4,807
  • 19
  • 25