Sorry, apparently my coffee hasn't kicked in yet and I'm still speaking gibberish.  I tried bringing the functionality of GetConcreteTypes(...) into the static class of StaticAssemblyTypesDictionary and ran into the problem of not being able to make List<T> or Logger.Warn static.  I could get around the List<T> by making it a statically typed list coming out, but the call to Logger when a GetType throws an excepetion is a stickier problem.