Found a solution!
The dictionary key was type. There was another property that listed the types and was easily casted to IEnumerable since System.Type is public. Then in a foreach loop I was able to iterate the types. At the same time I could then call the internal "get_item" function of the dictionary passing the type as a parameter.
foreach(var type in types)
{
var data = entityConfigurations.GetType().GetMethod("get_Item")
.Invoke(new object[] { type });
// Get more information here.
}
As Jon said below, this is very brittle because I am relying on internal implementation details subject to possible change in the future. This is not a good solution. Unfortunately, I haven't found a way to get the information I need in a more elegant way so far. Maybe, I could let Microsoft know that I need this meta information exposed in a more public way for the internal EntityTypeConfiguration type. But, until they listen I am left with few options.
This is a needed for a design-time tool to used for the collection of schema information set by the Code-First EntityFramework Fluent API. Prior to this I implemented a suite of wrapper classes that replace the EntityTypeConfiguration which followed a Wrapper-Delegation pattern where I could squirrel away the metadata I needed. There is more responsibility on both the myself and the user when using this pattern (ie. for Map Classes the user is forced to inherit from my custom implementation EntityTypeMetaConfiguration and for database context classes my [DbMetaContext : DbContext] is needed, not to mention the need for using a different overide for OnModelCreating).