ActivateAnything (nuget): An `AnythingActivator` will make an extreme effort to find and instantiate a concrete class which is assignable to a `Type`, whether or not the Type is concrete, whether or not the  Type has constructor dependencies, whether or not a suitable concrete subtype is found  in any currently loaded `Assembly`.  The attempt to find and instantiate suitable Types is rule-driven.   There are three kinds of `IActivateAnythingRule`. - `IFindTypeRule` provides rules for where to look for candidate concrete subtypes of an abstract type - `IActivateInstanceRule` simply returns an instance of a concrete type. - `IChooseConstructorRule` rules for how to choose between constructors when a concrete `Type` has been chosen.  The <em>extremity</em> of the effort lies in its recursive attempt to find and construct the <em>dependencies</em>.
Keywords: activate|create|test|unittest|tdd|mock|fake